事象
EC2 にログインしようとすると以下のエラーで怒られる。
% ssh -i ~/mykey.pem ec2-user@ec2-**-***-***-**.ap-northeast-1.compute.amazonaws.com Permission denied (publickey,gssapi-with-mic).
原因
- ユーザー名が間違っている。
SSH を使用してインスタンスに接続し、Host key not found in [directory]、Permission denied (publickey)、または Authentication failed, permission denied のいずれかのエラーが発生した場合は、AMI 用の適切なユーザー名で接続していて、なおかつインスタンス用の適切なプライベートキー (.pem)) ファイルを指定していることを確認します。MindTerm クライアントについては、[Connect To Your Instance] ウィンドウの [User name] ボックスにユーザー名を入力します。
適切なユーザー名は以下のとおりです。
- Amazon Linux AMI の場合は、ユーザー名は ec2-user です。
- Centos AMI の場合、ユーザー名は centos です。
- Debian AMI の場合は、ユーザー名は admin または root です。
- Fedora AMI の場合、ユーザー名は ec2-user です。
- RHEL AMI の場合は、ユーザー名は ec2-user または root のどちらかです。
- SUSE AMI の場合は、ユーザー名は ec2-user または root のどちらかです。
- Ubuntu AMI の場合、ユーザー名は ubuntu または root. です。
それ以外の場合で、ec2-user および root が機能しない場合は、AMI プロバイダーに確認してください
インスタンスへの接続に関するトラブルシューティング - Amazon Elastic Compute Cloud
補足
- EC2 ではなく ssh の話だが、AMI によってユーザー名が異なるので、思い込みで間違っていてこのエラーになることがあるのでメモ。