SSH認証で"Server refused our key" エラーが表示され接続できない

SSH認証で"Server refused our key" エラーが表示され接続できないことがあります。

エラーの確認

サーバーの /var/log/secure ログを確認します。
cat /var/log/secure
コマンドや
tail -n 10 /var/log/secure
コマンドで確認できます。

Authentication refused: bad ownership or modes for directory ... の場合

Authentication refused: bad ownership or modes for directory (ユーザーの.sshディレクトリパス)
のエラーがサーバーログに記録される場合があります。この場合は、.sshディレクトリや authorized_keyファイルのパーミッションが正しくない可能性があります。

以下のコマンドを実行して、自身だけが.sshディレクトリにアクセスできるよう変更します。
su (sshで接続するユーザー名) //必要に応じて
cd (sshで接続するユーザーのホームディレクトリ)
chown (sshで接続するユーザー名) -R .ssh
chgrp (sshで接続するユーザー名) -R .ssh
chmod 700 -R .ssh

(chmod は600でも可)

su penguin
cd /home/penguin
chown penguin -R .ssh
chgrp penguin -R .ssh
chmod 700 -R .ssh

secureログに何も表示されない場合

ログに何も表示されない場合は、SSHのキーが間違っている可能性があるます。原因として多いのは、PuTTYgenで生成した公開鍵をそのまま.sshディレクトリ内のauthorized_keyディレクトリに追加した場合に発生します。

PuTTYgenで生成した公開鍵をOpenSSH形式に変換する

PuTTYgenで生成した公開鍵をOpenSSH形式に変換するには、ssh-keygen コマンドを利用します。以下のコマンドを実行します。
ssh-keygen -i -f (PuTTYgenで生成した公開鍵) > (変換先ファイル名)
変換先のファイル名は任意のファイル名です。

ssh-keygen -i -f mykey.pub > mykey-ssh.pub



変換したOpenSSH形式の公開鍵をauthorized_keysファイルに追記します。

cat mykey-ssh.pub >> .ssh/authorized_keys

接続確認

問題を修正して接続確認をします。正しく接続できるとパスフレーズの入力を促されます。


パスフレーズがあっていればログインできます。

著者
iPentecの企画・分析担当。口が悪いのでなるべく寡黙でありたいと思っている。が、ついついしゃべってしまい、毎回墓穴を掘っている。
掲載日: 2013-02-07
iPentec all rights reserverd.