パスワードプロンプトなしでSSH通信を自動化

パスワードプロンプトなしでSSH通信を自動化

SSHを使用してHost1と通信したいと思います。

ホスト2のユーザー名/パスワードがあり、シェルスクリプトを介してsshを使用してホスト2に接続したいとします(ユーザー名とパスワードを引数として使用します)。

誰かが同じシェルスクリプトを書くのに役立ちますか?

答え1

パスワードを書き留めておくのは良い考えではないようです。ssh鍵を見てください。公開鍵と秘密鍵のペアを作成し、host1ここに公開鍵をコピーするだけですhost2ここそれを行う方法のチュートリアルです。

答え2

expect試してみるとうまくいきます。動作するにはインストールする必要があります #!/bin/bash

HOSTS="VM2 VM3 VM4 VM1"

read -p "Password: " PASSWORD

for HOST in $HOSTS
do
expect -c "
your command 
    expect {
    "*password:*" { send $PASSWORD\r;interact }
    }
    exit
    "
done

答え3

ssh-agentそしてを見てくださいsshpass

彼らがあなたの問題を解決しなかった場合は、なぜそうしなかったのかを説明してください。

答え4

継続的なSSH通信が必要な場合は、autosshなどのユーティリティを使用できます。

関連情報