root アカウントへのssh鍵ログインでハマったのでメモ
結論:SELinuxが邪魔してた
root アカウントに SSH 鍵認証で接続しようとして
$ ssh root@foobar.jp Enter passphrase for key '/home/foo/.ssh/id_rsa':
散々
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
と怒られた。
- 接続先の鍵ファイルのオーナー、パーミッションはOK( .ssh が 700 の root:root、authorized_keys が 600 のroot:root)
- sshd_config の主要部分
- PermitRootLogin without-password
- PasswordAuthentication no
- UsePAM no
- AllowUsers root ...
同じ鍵の一般ユーザにはログインできるものの、root アカウントに対しては、先のエラーが出てさっぱり接続できない状態。
詳細ログを吐かせると
$ ssh -vvv root@foobar.jp (略) debug1: read PEM private key done: typeEnter passphrase for key '/home/foo/.ssh/id_rsa': debug1: read PEM private key done: type RSA debug3: sign_and_send_pubkey debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic debug1: Trying private key: /home/foo/.ssh/id_dsa debug3: no such identity: /home/foo/.ssh/id_dsa debug2: we did not send a packet, disable method debug1: No more authentication methods to try. Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
こんな状態で、ぐぬぬと悶えながらパーミッション確認したり鍵ファイルを置き直したりすったもんだした後、「もしかしてSELinuxじゃね?」と思い至り、SELinux を disable に
# setenforce 0
これでサクッと繋がりましたよ…
おのれSELinux…