0

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

1 回答 1

0

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

于 2015-04-09T13:36:28.873 回答