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]]