今回はこちらの記事を参考にさせていただきました。
エラー内容
EC2でSSH接続をしようとした所エラー発生
ssh: connect to host xxx.xxx.xxx.xxx port 22: Operation timed out
結論
元々作業していた所からコワーキングスペースに移動した為エラーが起きた。
要するにEC2インスタンスのセキュリティグループ、SSH接続設定と自分の接続元(IPアドレス)に問題があった。
具体的にはEC2のインスタンスのセキュリティのインバウンドルールのSSH接続のソースを「マイIP」に設定した。これにより、設定した作業場所じゃないとSSH接続ができなくなってしまう。
コワーキングスペースに移動すると接続元のIPアドレスが変わってしまった為、接続元が許可されずエラーになった。
解決方法
- AWSのサービス検索欄から「EC2」を検索
- 「セキュリティグループ」を選択
- 該当EC2インスタンスにチェック
- インバウンドルールから「インバウンドルールを編集」を選択
- タイプSSHのソースで「マイIP」を選び直す。※推奨
もしくは「任意の場所」にを選ぶ - ルールを保存をクリック
こうすると、作業場所のIPアドレスからのSSH接続を許可したことになります。
$ ssh -i .ssh/ファイル名.pem ec2-user@xxx.xxx.xxx.xxxa #EC2インスタンスのパブリックIP
なぜ「マイIP」が推奨かというと万が一SSHキーが流出し時の危険性を考えるとこちらの方がセキュアだからです。
毎回接続元を変えなければならないのは面倒ですが、もし流出してしまった場合はAWSから高額請求がくることがあるのでここで保険を打っておいた方が無難ですね。