Love澤's Room

技術系ネタをまとめていたブログ。現在はカテゴリにこだわらず更新中。

iptableの設定もsshd_configの設定も正しいのにSSH接続できない時の原因

新サイトへ移転しました
約3秒後に自動的にリダイレクトします。


/home/user/のパーミッションが777になっていた。711に戻したらうまく接続できた

FileZillaでファイルを転送しようと思って、一時的にパーミッションを777に設定したところ、転送できなかった。
そこでTeraTermでiptableの確認をしようと思って接続を試みたところ、接続エラーとなった。

もしやと思ってパーミッション設定を711に戻したらうまく接続できた。

その後ググったところ、以下の様なサイトを発見。

SSHが鍵認証されないとき、パーミッションを疑え。 - それマグで!

もちろん、.sshから上位フォルダのパーミッションも必要
chmod 755 /home/takuya
これがうっかり777になってた。ホームディレクトリが777だと永遠にauthorized_keysは無効化される。

SSHで公開鍵認証を使う - Pistolfly

クライアント側のユーザのホームディレクトリのパーミッションにも注意する。所有者以外の書込み権を設定してあるとだめ。
たとえば、/home/hogeのパーミッションが777の場合、公開鍵認証でsshログインしようとすると、
Permission denied (publickey,gssapi-with-mic).
というエラーになる。この場合、サーバ側のログ(/var/log/secure)では
Authentication refused: bad ownership or modes for directory /home/hoge
となっていて、/hoem/hogeのパーミッションに問題があるということ。
所有者以外の書込み権を設定してあるとだめ。700、711、755にすればOK。

なるほど。