当我尝试使用linux expect来ssh远程机器时,身份验证非常慢,为什么?

当我尝试使用linux expect来ssh远程机器时,身份验证非常慢,为什么?,linux,expect,Linux,Expect,我试着用它,但我发现它很慢 我的代码: #!/usr/bin/expect -f set hostname [lindex $argv 0] spawn ssh "xxx\@$hostname" expect "password: " send "xxxxx\r" expect "$ " send "sudo su admin\r" expect "assword:\n" send "xxxxx\r" expect "$ " send "cat /tmp/id_rsa.pub >>

我试着用它,但我发现它很慢

我的代码:

#!/usr/bin/expect -f
set hostname [lindex $argv 0]
spawn ssh "xxx\@$hostname"
expect "password: "
send "xxxxx\r"
expect "$ "
send "sudo su admin\r"
expect "assword:\n"
send "xxxxx\r"
expect "$ "
send "cat /tmp/id_rsa.pub >> /home/admin/.ssh/authorized_keys\r"
expect "$ "
send "exit\r"

你有什么建议吗

exp_internal 1
添加到脚本顶部,以便您可以查看expect正在执行的操作

我怀疑这是错误的:
应该是“assword:\n”
——我打赌实际的密码提示不会以换行符结尾。尝试删除
\n

尝试

ssh-o GSSAPIAuthentication=nologin@remoteipipaddress

如果成功。。需要编辑/etc/ssh/ssh\u config和/etc/ssh/sshd\u config 寻找GSSAPIA认证。请将值更改为“否”


这对我有用

哪种说法很慢?连接时,
ssh-v
显示什么挂在哪里?ssh日志显示了什么?通常,当使用expect时,“非常慢”意味着事情没有按照您希望的那样工作,因为您的expect语句超时了。