我如何让我的期望脚本检查服务器是否正在使用ECDSA密钥,以及是否继续使用脚本,否则如果它像RSA那样立即退出?
#!/usr/bin/expect
#Usage sshsudologin.expect <host> <ssh user> <ssh password>
set timeout 60
spawn ssh [lindex $argv 1]@[lindex $argv 0]
expect "yes/no" {
send "yes\r"
expect "*?assword" { send "[lindex $argv 2]\r" }
} "*?assword" { send "[lindex $argv 2]\r" }
expect " " { send "sudo su -\r" }
expect " " { send "commands\r" }
expect " " { send "exit\r" }
expect " " { send "exit\r" }
interact
答案 0 :(得分:0)
要详细说明Donal的评论,您似乎希望在按照所述{{3}连接时在命令行(或通过其他方式)覆盖HostKeyAlgorithms
客户端的配置变量}}。如果您只指定ECDSA机制,那么如果服务器仅提供基于RSA,DSA或FIPS的密钥,则连接将会失败。