nir*_*gxx 5 ssh command-line unity gnome-terminal window-management
我正在使用 expect 从 Unity 启动器自动登录 SSH,命令如下所示:
gnome-terminal -t SSH1 -e "expect -c 'spawn ssh root@111.222.333.255 ; expect assword ; send \\"password123\\n\\" ; interact'"
Run Code Online (Sandbox Code Playgroud)
这适用于自动登录,但如果我最大化 gnome-terminal 窗口,ssh shell 内容会保持较小,就像窗口具有默认大小一样,如下所示:
起初我以为是因为 gnome-terminal 以默认大小启动,并且由于某种原因最大化时 ssh 内容没有调整大小,但后来我添加gnome-terminal --window --maximize到命令中,同样的问题仍然存在,窗口开始最大化但是 ssh shell 文本仍然是默认终端的大小。
此外,如果我只是打开一个终端并在顶部输入该命令,我会遇到与从 Unity 启动器启动它相同的问题。
任何想法可能导致这种情况以及如何解决它?
小智 4
在您的期望脚本顶部使用以下内容:
#trap sigwinch and pass it to the child we spawned
trap {
set rows [stty rows]
set cols [stty columns]
stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH
Run Code Online (Sandbox Code Playgroud)
获得所需效果的更好方法是使用enzotib建议的 ssh 密钥。
第一的
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)
在每次提示时按 Enter 键,将字段留空将创建一个没有密码的默认密钥。这就是你想要的。
接下来将公钥推送到服务器。
$ ssh-copy-id root@111.222.333.255
Run Code Online (Sandbox Code Playgroud)
最后使用以下命令创建启动器:
gnome-terminal -t SSH1 -x ssh root@111.222.333.255
Run Code Online (Sandbox Code Playgroud)