No.453


【Linux】秘密鍵使用時のSSH接続で失敗するときの確認事項

パーミッションは設定したか? sshd.config の記述は? ケアレスミスで時間を無駄したと怒られる心の準備はOK?

 新しい環境を作ったりすると高確率で遭遇するSSH接続の失敗。

 人間、慣れてくると失敗にすらなれてくるもので、いつも同じ間違えを繰り返す。

 他人へのチェックリスト説明がてら、自戒しつつ自分的確認事項をメモしておく。


そのまえにひとこと

 /var/log/secure は見ましたか?

 たいていそこに原因が記録されてますよ?(自戒


①ディレクトリとファイルのパーミッション

 遭遇確率No.1がこれ。
 とにかくファイルとディレクトリのパーミッションを確認すること。
 特にパスワードを聞かれる場合はこのパターンが多いと思う。

ディレクトリ・ファイル パーミッション
~ 0755
~/.ssh/ 0700
~/.ssh/id_rsa 0600
~/.ssh/id_rsa.pub 0600

②SSHアクセス許可

 そもそもアクセスしようとしているユーザーがSSHアクセスが許可されているのか。
 デフォルトでは存在していない設定だが、一度設定済みの環境だとこれが原因のことも多い。
 パスワード無しの鍵ファイルなのにパスワードを聞かれる場合はこれが多い気がする。たぶん。

/etc/ssh/sshd_config

 にて AllowUsers にユーザーが追加されていることを確認。

AllowUsers hoge fuga ...

③鍵認証の許可

 そもそも鍵認証を許可しているのか。
 最近はデフォルトでONなので問題ないと思うけど、年季の入った環境だと変えられていたりするので確認。
 完全拒否の場合はこれかも。

/etc/ssh/sshd_config

 にて PubkeyAuthentication が有効になっていることを確認。

PubkeyAuthentication yes