如何检查服务器是否在SSH中使用ECDSA指纹,否则退出?

时间:2015-04-08 16:24:40

标签: ssh tcl expect ecdsa

我如何让我的期望脚本检查服务器是否正在使用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

1 个答案:

答案 0 :(得分:0)

要详细说明Donal的评论,您似乎希望在按照所述{{3}连接时在命令行(或通过其他方式)覆盖HostKeyAlgorithms客户端的配置变量}}。如果您只指定ECDSA机制,那么如果服务器仅提供基于RSA,DSA或FIPS的密钥,则连接将会失败。