【问题标题】:How do I check if a server is using an ECDSA fingerprint in SSH otherwise quit?如何检查服务器是否在 SSH 中使用 ECDSA 指纹,否则会退出?
【发布时间】:2015-04-08 16:24:39
【问题描述】:

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

【问题讨论】:

  • 在尝试连接之前将客户端配置为仅支持该特定连接上的 ECDSA 密钥不是最简单的吗?

标签: ssh tcl expect ecdsa


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 2010-12-19
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    相关资源
    最近更新 更多