SSHで公開鍵認証に失敗するので原因を調べたらユーザの HOME ディレクトリのパーミッションが 777 になっていたからだった。~/.ssh ディレクトリや鍵ファイルのパーミッションが原因で失敗したことはあるけど、 これは初めて。
事象
- SSHで公開鍵認証できるよう設定したがパスワードを求められる。
$ ssh oracle@192.168.0.179 oracle@192.168.0.179's password:
- ssh で接続時に /var/log/secure に以下のメッセージが出力される。
Sep 2 11:51:32 hostname sshd[6989]: Authentication refused: bad ownership or modes for directory /home/oracle
対処
$ chmod go-w /home/oracle
SSH公開鍵認証設定
以下の設定を行ったが公開鍵認証できなかったので、上記の対処を実施した。
サーバ側
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
- 設定ミスがないか確認する。
- 何も表示されなければミスはない
# /usr/sbin/sshd -t
- sshd を再起動する
# service sshd restart
クライアント側
- SSH鍵を作成する
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/yazekats/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
$ cat id_rsa.pub >> authorized_keys