SSHダブルログインスクリプト

SSHダブルログインスクリプト

スクリプトを使用して2回ログインする必要がありますが、ssh機能しません。私のスクリプトファイルの内容は次のとおりです。

#!/usr/bin/expect

set login "user"
set addr "address1"
set addr2 "address2"
set pw "password"

spawn ssh $login@$addr
expect "$login@$addr\'s password:"
send "$pw\r"
expect "$login@host:"
spawn ssh $addr2
expect "$login@$addr\'s password:"
send "$pw\r"
interact

しかし、これはエラーのため失敗します。

user@host:~$ ssh: Could not resolve hostname address2: Name or service not known
send: spawn id exp7 not open
    while executing
"send "$pw\r""

行を変更するとエラーで失敗しますspawn ssh $addr2exec ssh $addr2

user@host:~$ ssh: Could not resolve hostname address2: Name or service not known
    while executing
"exec ssh $addr2"

これを行うには何を変更する必要がありますか?

ベストアンサー1

この問題の解決策を見つけた後、私の答えを投稿しました。実際に動作するスクリプトは次のとおりです。

#!/usr/bin/expect

set login "user"
set addr "address1"
set addr2 "address2"
set pw "password"

spawn ssh $login@$addr
expect "$login@$addr\'s password:"
send "$pw\r"
expect "$login@host:"
send "ssh $addr2\r"
expect "$login@$addr\'s password:"
send "$pw\r"
interact

spawn ssh $addr2だから基本的に行をsend "ssh $addr2\r"。最初にSSHを接続したホストで別のSSHを起動するのではなく、開始した場所から別のSSHを作成しようとしています。

おすすめ記事