LoginSignup
3
2

More than 1 year has passed since last update.

AWS/EC2に向けてSSHを利用したshellscriptでpingっぽく疎通確認する

Posted at

AWSのEC2はデフォルトだとpingによる疎通確認が出来ません。

AWS Security Groupのデフォルト設定ではSSH(TCP22)しか空いていないためです。
そこで、SSHを利用したshellscriptでpingっぽい確認を使用と思います。

■やりたいこと

image.png

■スクリプト

ssh-ping
#!/bin/bash

COUNT=1

while true
do
  echo "Try:" $COUNT
  date

  timeout 1 ssh 11.22.33.44

  date
  echo #

  COUNT=`expr $COUNT + 1`
done

※無限ループするため、終了したい場合はctrl+cで停止ください。
※10行目のIPアドレスについては適宜書き換えてください。

◇解説

EC2にSSHログインするためにはプライベートキー(.pem証明書)が必要となります。
ですが、その証明書を指定しない場合は以下のエラーとなるため、こちらを通信応答として利用します。
よって10行目のsshコマンドにおいて、敢えて証明書オプション等を付けずに実行します。

sshエラー
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

また、EC2へ通信できない場合は20秒後に以下のエラーとなります。さすがに20秒はちょっと待てないので、10行目のsshコマンドを1秒でtimeoutしています。
無応答エラー
ssh: connect to host 11.22.33.44 port 22: Connection refused

■結果

正常時はPermission deniedの応答が表示されます。

result(正常時)
Try: 1
2022年 10月 13日 木曜日 18:27:09 JST
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
2022年 10月 13日 木曜日 18:27:09 JST

Try: 2
2022年 10月 13日 木曜日 18:27:09 JST
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
2022年 10月 13日 木曜日 18:27:09 JST

Try: 3
2022年 10月 13日 木曜日 18:27:09 JST
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
2022年 10月 13日 木曜日 18:27:09 JST

異常時はPermission deniedが応答されないことで見分けます。

result(通信断を検知)
Try: 80
2022年 10月 13日 木曜日 18:30:54 JST
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
2022年 10月 13日 木曜日 18:30:55 JST

Try: 81
2022年 10月 13日 木曜日 18:30:55 JST
2022年 10月 13日 木曜日 18:30:56 JST

Try: 82
2022年 10月 13日 木曜日 18:30:56 JST
2022年 10月 13日 木曜日 18:30:57 JST

Try: 83
2022年 10月 13日 木曜日 18:30:57 JST
2022年 10月 13日 木曜日 18:30:58 JST


(中略)


Try: 98
2022年 10月 13日 木曜日 18:31:12 JST
2022年 10月 13日 木曜日 18:31:13 JST

Try: 99
2022年 10月 13日 木曜日 18:31:13 JST
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
2022年 10月 13日 木曜日 18:31:13 JST

※Try81~98あたりでAWS Security Groupで通信制限を行いました



#もうちょっと出力結果とか色々きれいにできそうですが、シンプルが一番ということで何もしていません。気になる方はお好きにカスタムしてみてください。

■参考

SSH を使用した Linux インスタンスへの接続
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2