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: type 
Enter 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