個人学習用のEC2インスタンスに接続ができなくなり
はまってしまったのでメモしておきます。
事象
teratermでWin10からEC2インスタンスへSSHでのログインを行ったところ、
Authentication failed
のメッセージが表示されログインに失敗した。
補足
前日までは対象のインスタンスに対し、ユーザ:ec2-userにより
同一秘密鍵にて接続できていた。
前日作業の完了後、インスタンスを停止した。
(当日の起動後、初の接続)
# 実施した内容
1.PowerShellからssh実行
ssh -i .\[xxxx].pem ec2-user@[X.X.X.X]
結果
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '.\\[xxxx].pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key ".\\[xxxx].pem": bad permissions
ec2-user@[X.X.X.X]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
2.秘密鍵ファイルの権限変更
上記の~.pemファイルの権限が広すぎる警告を受け、秘密鍵ファイルの権限変更を実施。
WindowsOSであるため、ファイルのプロパティより、以下を実施。
- 操作中ユーザのみをフルコントロール、
- その他のユーザ、グループの権限を削除
- 権限の継承も無効化。
3.権限変更後、PowerShellからssh再実行
ssh -i .\[xxxx].pem ec2-user@[X.X.X.X]
結果
ec2-user@[X.X.X.X]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
・・・権限の警告は抑止されたが接続はされず。
4.ssh -v オプションにて詳細確認
ssh -i .\[xxxx].pem ec2-user@[X.X.X.X] -v
デバッグログ中に`key_load_public: No such file or directory'を確認。
パーミッションを変えてしまって ssh でログインできなくなった時@nanasessを参考にさせて頂き、
EC2インスタンスのec2-userの.ssh関連の権限を見直し。
インスタンスへのログインはAWSの「EC2 Instance Connect (ブラウザベースの SSH 接続)」から実施。
\#Chromeからだと入力できなかった \#(ログイン直後のコンソール内容は表示されるもののEdgeから繋がないと操作できなかった。。。)ec2-userにて下記のコマンドを実行。
$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*
(作業時のログが取れなかった。。。ホームディレクトリの権限がおかしくなっていた・・はず・・・)
5.再度、PowerShellのsshで接続
ec2-userにて無事にログイン完了。
teratermでも同様に接続を確認。
結論
前回作業時にホームディレクトリのパーミッションを変えてしまう何かを実行していたのかも。
ということで消えてしまいたくなりました。