0

サーバーが ECDSA キーを使用しているかどうか、スクリプトを続行するかどうかを期待するスクリプトにチェックさせるにはどうすればよいですか。

#!/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 に答える