プログラミング初心者です。
macのターミナルから、前回はssh接続できたのに、何故か全く同じコマンドを打っても接続できないという現象を解決したので共有します。
いざ、EC2へSSH接続!
$ ssh -i [SSHキーのパス/SSHキーのファイル名].pem ec2-user@[EC2インスタンスのパブリックIP(例10.20.30.40)]
を入力しenter。しかし、ログインできず、しばらくしてタイムアウト。前回と全く同じコマンドを入力しているのに、何故だ?
EC2インスタンスを確認してみる
AWSのコンソール画面へログインして、EC2のインスタンスを確認してみる(下図)
確認事項1 EC2インスタンスの状態
もし、インスタンスの状態がrunningになっていなければ、停止になっていたら、「アクション」→「インスタンスの状態」→「起動」をクリックして起動するまで待って、再度SSH接続を試してみましょう。
確認事項2 パブリックIP
SSH接続する時の[パブリックIP]が合っているか確認しましょう。
Elastic IPで関連付けしていない場合、再起動するたびにパブリックIPが変わるので注意です。
確認事項3 セキュリティグループのインバウンド設定
ローカルPCのグローバルIPアドレスが変わった場合は、セキュリティグループのインバウンド設定を変更する必要があります。
EC2のインスタンスに設定しているセキュリティグループのページへ飛んで、インバウドのSSHのソースのIPアドレスを確認してみましょう。
ちなみに、ローカルPCの現在のグローバルIPは、ターミナルで、
$ curl ifconfig.io
と入力することで確認できます。
間違えていれば、編集を押して、インバウンドのルール編集画面でSSHのソースをマイIPにして、保存します。
再度、ローカルのターミナルからSSH接続してみましょう。