スクリプトを使用して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 $addr2
。exec 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を作成しようとしています。