複数のサーバーへのSSH接続

複数のサーバーへのSSH接続

スクリプトをホストファイルのように動作させる方法はありますか?

だから私は言いたい

./test1 

サーバー名が何であるかを尋ね、「server1」と入力しました。スクリプトはファイルからIPアドレスを取得し、sshを介して接続しました。 sshpassで動作するように管理しましたが、IPなしでは動作しませんでした!

while read -p 'Enter the ip address for the server: ' ip_addr && [[ -z "$ip_addr" ]] ; do
 echo " please, no blank IP address!"

 sshpass -p "$password" ssh -o StrictHostKeyChecking=no $ip_addr "x=$y"  /bin/bash << "EOF"
                        sudo su - $x

ベストアンサー1

以下を試してください。

  • SSHを介して接続するすべてのホストを含​​むテキストファイルを作成します。
  • ファイルを1行ずつ読み、そこからいくつかの操作を行います。

テキストファイル:

host1 #comment
host2 # also comment
host3 # # # it does not matter whats after the hostname

スクリプト:

cat Textfile | while read srv comment do;
sshpass -p "$password" ssh -o StrictHostKeyChecking=no USER@${srv} "COMMANDS"
done

暗号化の場合:パスワードを公開鍵認証に置き換えることを検討する必要があります。動作するには、次のものが必要です。

  • ローカルSSHキーペアを生成するには、「ssh-keygen ...」を使用してください。
  • 「ssh-copy-id..」を使用して、リモートシステム認証鍵に公開鍵を追加します。

おすすめ記事