请教一个关于 macos 下 iterm2 通过 expect 脚本登录同一台服务器卡死的问题

2022-06-23 15:50:33 +08:00
 GoRoad

问题:首次打开 ssh 窗口无问题,但是打开同一台服务器的第二个 ssh 窗口后显示连接上,但是无法正常输入,类似于卡死的情况,换连接其他服务器也是同样的情况,只能打开一个窗口,我的 iterm2 profile 配置如下

具体操作: 1 、配置.ssh 目录下的配置文件,如下

#!/usr/bin/expect -f

set host x.x.x.x
set user root
set port 22
set password password
set timeout -1

spawn ssh -p$port $user@$host
expect "*password:*"
send "$password\r"
interact
expect eof

2 、新建 iterm2 的 profile 文件

在 Command 处选择Command ,填写 expect ~/.ssh/xxxconfig,Working Directory 选择 Home directory

3 、使用

在 iterm2 窗口按快捷键 cmd+o 选择 profile 直接登录 ssh

1049 次点击
所在节点    程序员
5 条回复
viquuu
2022-06-24 11:17:43 +08:00
```sh
#!/usr/bin/expect

set PORT xxxxxxx
set HOST xxxxxxx
set USER xxxxxxx
set PASSWORD xxxxxxx

spawn ssh -p $PORT $USER@$HOST
expect {
"yes/no" {send "yes\r";exp_continue;}
"*password:*" { send "$PASSWORD\r" }
}
interact
```
我用的脚本是这样,刚试了一下,没卡死。iterm2 版本:3.4.15
beordle
2022-06-24 13:10:25 +08:00
大抵是因为你复用了会话,第二次登陆无需输入密码。password 关键是不会出现,从而 hang 住,建议修改 viquuu 的脚本,并增加 bash prompt 的 case 分支。
GoRoad
2022-06-27 11:45:53 +08:00
@viquuu #1 我按照你这样改的 还是出现同样的问题
GoRoad
2022-06-27 11:46:19 +08:00
@beordle #2 麻烦能帮忙改一个吗 我对这个脚本实在是不熟悉 非常感谢
GoRoad
2022-06-27 14:43:50 +08:00
刚刚测试又发现个问题,我多次打开同一台服务器的配置文件,关闭第一个能用的会话后,剩余的会话在几秒内就全都关闭了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861677

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX