| 363行目: | 363行目: | ||
sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名またはIPアドレス> | sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名またはIPアドレス> | ||
<br><br> | <br><br> | ||
== SSH接続のテストコマンド == | |||
==== タイムアウトの使用 ==== | |||
ポートのステータスを確認することにより、SSH接続をテストする。<br> | |||
timeout <時間 [sec]> bash -c "< /dev/tcp/<サーバのIPアドレスまたはホスト名>/<ポート番号>" | |||
例: | |||
timeout 5 bash -c "< /dev/tcp/server2/22" | |||
<br> | |||
終了ステータスを確認する。<br> | |||
終了ステータスが0の場合、SSH接続のテストが成功したことを意味する。<br> | |||
echo $? | |||
<br> | |||
==== nmapの使用 ==== | |||
nmapはポートの状態を確認する時によく使用されている。<br> | |||
nmap <サーバのIPアドレスまたはホスト名> -PN -p ssh | grep -E 'open|closed|filtered' | |||
<br> | |||
==== netcatまたはncの使用 ==== | |||
ncとncatを使用して、ポートの状態を確認、および、SSH接続をテストすることができる。<br> | |||
nc --wait <時間 [sec]> <サーバのIPアドレスまたはホスト名> <ポート番号> < /dev/null &> /dev/null | |||
<br> | |||
終了ステータスを確認する。<br> | |||
終了ステータスが0以外の場合、SSH接続に失敗している。<br> | |||
echo $? | |||
<br> | |||
==== SSHコマンドの使用 ==== | |||
パスワード無しでSSH接続を行う場合、接続を確認するためにsshコマンドを使用することができる。<br> | |||
<code>ConnectTimeout</code>オプションを付加して、SSHがアクティブになるまでの接続待ち状態でフリーズしないようにする。<br> | |||
<code>StrictHostKeyChecking</code>オプションを付加して、セキュリティとフィンガープリントのプロンプトが表示されないようにする。<br> | |||
<code>BatchMode</code>オプションが<code>yes</code>の場合、パスフレーズ / パスワード照会は無効になる。<br> | |||
<br> | |||
パスワードを使用している場合、コマンドはパスワードの入力を要求するため、sshpassやexpectスクリプト等を使用しない限り自動化できない。<br> | |||
<br> | |||
# SSH接続に成功した場合は、0を指定している | |||
ssh -q -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=<時間 [sec]> <サーバのIPアドレスまたはホスト名> 'exit 0' | |||
<br> | |||
終了ステータスを確認する。<br> | |||
echo $? | |||
<br><br> | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:RHEL]][[カテゴリ:SUSE]] | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | ||