FreeBSD 14
Sponsored Link

OpenSSH : Parallel SSH を利用する2023/12/19

 
Parallel SSH を利用して、SSH サーバーが稼働する複数ホストに対して同時に SSH 接続します。
[1] PSSH をインストールします。
root@dlp:~ #
pkg install -y pssh
[2] PSSH の使い方です。
パスフレーズ無し鍵認証の場合の PSSH の利用方法です。
パスフレーズ付き鍵認証の場合は 事前に SSH-Agent を起動してパスフレーズをセットしておけば、後は以下と同様の操作で利用可能です。
# 指定のホストに対して SSH 接続し hostname コマンドを実行

freebsd@dlp:~ $
pssh -H "10.0.0.51 10.0.0.52" -i "hostname"

[1] 13:45:41 [SUCCESS] 10.0.0.52
node02.srv.world
[2] 13:45:41 [SUCCESS] 10.0.0.51
node01.srv.world
# 接続先ホストはファイルからも読み込み可能

freebsd@dlp:~ $
vi pssh_hosts.txt
# 接続先ホストを 1 行ごとに記述

freebsd@10.0.0.51
freebsd@10.0.0.52
freebsd@dlp:~ $
pssh -h pssh_hosts.txt -i "uptime"

[1] 13:47:18 [SUCCESS] freebsd@10.0.0.51
 1:47PM  up  4:44, 1 user, load averages: 0.25, 0.23, 0.21
[2] 13:47:18 [SUCCESS] freebsd@10.0.0.52
 1:47PM  up 10 mins, 1 user, load averages: 0.23, 0.21, 0.15
[3] パスワード認証で接続したい場合はオプション指定で可能ですが、接続先ホストの接続ユーザーのパスワードは全ホストで同じである必要があります。
# 認証の優先順位をパスワード優先にして -A でパスワード認証

freebsd@dlp:~ $
pssh -h pssh_hosts.txt -A -O PreferredAuthentications=password,keyboard-interactive -i "uname -r"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:  
# パスワード入力

[1] 13:59:37 [SUCCESS] freebsd@10.0.0.51
14.0-RELEASE
[2] 13:59:37 [SUCCESS] freebsd@10.0.0.52
14.0-RELEASE
[4]
なお、PSSH パッケージには pssh コマンド以外にも、pscp, prsync, pslurp, pnuke も含まれており、pssh と同様に利用可能です。
関連コンテンツ