SSHで公開鍵認証に失敗する

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: 
  • ~/.ssh/id_rsa.pub をサーバに転送する。
  • クライアントの公開鍵をサーバの authorized_keys に追加する。
$ cat id_rsa.pub >> authorized_keys