事象
ローカルのMacからsshコマンドでEC2(centos7)へログインしようとしたところ、次のエラーが発生しました。
$ cd ~/.ssh
$ ssh -i mykey.pem centos@44.33.222.111
centos@44.33.222.111: Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
調査
~/.ssh
の権限が700であること。
その中のmykey.pem
の権限が600になっていることを確認。
そのためローカル端末の権限には問題がなさそうです。
※ こちらの設定ができていないとssh接続できません。
問題はサーバー側にありそうなので、ブラウザ経由でAWSにログイン。
ES2サーバーへログインして/var/log/secure
を確認します。
/var/log/secure
にはsshによる接続成功、失敗や、suコマンドでrootになった際のログが出力箇所です。
# tail /var/log/secure
・・・・・・(不要ログの記載は省略)
Feb 12 16:04:41 ip-176-22-11-103 sshd[7993]: Authentication refused: bad ownership or modes for directory /home/centos
/home/centos
の権限がダメらしいので確認します。
# ls -dl /home/centos
drwxrwxrwx. 8 centos centos 4096 2月 12 13:41 /home/centos
公開鍵認証方式でのホームディレクトリのパーミッション指定は、
755 以下でないといけないようです。参考サイト
なので、/home/centos
の権限を755に設定します。
# chmod 755 /home/centos
# ls -dl /home/centos
drwxr-xr-x. 8 centos centos 4096 2月 12 13:41 /home/centos
Macから再度ssh接続してみます。
$ cd ~/.ssh
$ ssh -i mykey.pem centos@44.33.222.111
Last login: Sat Feb 12 16:21:40 2022 from 54-240-200-8.amazon.com
[centos@ip-176-22-11-103 ~]$
無事接続できるようになりました。