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の企画・分析担当。口が悪いのでなるべく寡黙でありたいと思っている。が、ついついしゃべってしまい、毎回墓穴を掘っている。