こんにちは、@Manabu です。
EC2にSSH接続したいけど、エラーが発生した〜
AWSのEC2インスタンスにログインするだけで、エラーが発生してしまう経験はあると思います。
初心者の方にとっては、これだけで挫折の要因になりかねません。
この記事では、EC2にSSH接続しようとしたところ、エラーが発生し接続できなかった時の問題点と解決策について記載しています。
以下のような方におすすめです。
発生原因
AWS EC2インスタンスにSSHで接続しようとした際に、以下のエラーが発生することがあります。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
このエラーは、SSH接続の際に認証が失敗したことを示しています。
具体的には、SSHクライアントがEC2インスタンスに接続しようとしましたが、認証プロセスが完了しなかったため、接続が拒否されています。
私の場合は、以下のコマンドでEC2にログイン使用としていました。
ssh -i test.pem 3.115.33.204
この場合、EC2に接続するユーザーを指定していないということが接続できなかった原因になります。
解決策
どのユーザーでログインするのかを指定することで解決しました。
※Amazon Linuxの場合、デフォルトユーザーがec2-userになるので、今回使用しています。
例としては、以下のようなコマンドになります。
ssh -i test.pem ec2-user@3.115.33.204
, #_
~\_ ####_ Amazon Linux 2
~~ \_#####\
~~ \###| AL2 End of Life is 2025-06-30.
~~ \#/ ___
~~ V~' '->
~~~ / A newer version of Amazon Linux is available!
~~._. _/
_/ _/ Amazon Linux 2023, GA and supported until 2028-03-15.
_/m/' https://aws.amazon.com/linux/amazon-linux-2023/
このように表示されるとEC2にログインできている証です。
簡単なコマンドのミスですが、たまに失敗してしまうので、エラーが発生した時はよく確認するようにしましょう。
その他の原因
このエラーは、他の原因で発生する場合もあるようです。
いくつか紹介します。
誤ったPemキーを使用している
EC2を複数管理している人は、それぞれでPemキーを分けている場合があります。
ログインしようとしているEC2に対して、正しいPemキーを指定しないと同様のエラーが発生するので注意しましょう。
Pemキーの権限が適切でない
EC2作成時にPemキーも作成されますが、Pemキーをダウンロードしたまま使用することはできません。
これは、適切な権限がキーに設定されていないためです。
以下のようなコマンドを実行して、適切な権限を与えましょう。
chmod 600 test.pem
セキュリティグループなどのネットワークの問題
EC2のネットワーク制御の役割を担う、セキュリティグループというものがあります。
セキュリティグループのインバウンドルールに、SSHアクセスを許可するためのポート(デフォルトでは22)を登録する必要があります。
こちらが原因でも同様のエラーが発生するので、確認するようにしましょう。
まとめ
様々な理由が考えられますが、これがAWS開発での挫折につながっては非常にもったいないです。
この記事を参考に、少しでも悩みがない状態で開発できることを願っています。