1000個のLinuxサーバーへのコマンドSSH接続

1000個のLinuxサーバーへのコマンドSSH接続

次の状況を解決するのに役立ちます。

私は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

おすすめ記事