Love澤's Room

技術系ネタをまとめていたブログ。カテゴリにこだわらず更新していこうかと思います。

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

/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。

なるほど。