次の状況を解決するのに役立ちます。
私は1000のLinuxサーバーを持っています。マイプライマリサーバーでパスワードのない接続を許可するサーバーを見つける必要があります。以下は私が使用するコマンドです。次のコマンドの問題は、ターゲットサーバーがパスワードを要求するとループが機能しなくなることです。
for i in `cat srv`; do echo Server $i\n; ssh $i "uptime"; done
出力:
Server server001
04:56:01 up 62 days, 9:18, 0 users, load average: 0.09, 0.14, 0.13
サーバーサーバー002
Password:
どうすれば解決できますか?
ベストアンサー1
オプション-o BatchMode=yes
としてお試しください。ssh
これにより、コマンドラインでパスワードを確認し、リモートホストのフィンガープリントを受け入れることを防ぎます。
SSHの戻りコードを確認したい場合があります。
for host in $(< serverlist)
do
echo testing $host
if ssh -o BatchMode=yes $host uptime
then echo host $host OK
else echo host $host KO
fi
done > result.log