CentOS6.3でSSHの公開鍵認証、パーミッションの設定大丈夫なのになんでログインできないのかなーと思ったら、SELinuxが原因でした。
ぐぐると、SELinuxをoffにする設定が多いのですが、せっかくなのでSELinuxの設定をどうすれば良いのか試してみた。
setsebool allow_ssh_keysign=on setsebool ssh_sysadm_login=on restorecon -R -v /root/.ssh
rootの場合は、こんな感じで良いらしい。
上2行だけだとダメだったので3行目も追加(´・ω・`)
(追記) 3行目だけで良いらしいです。なので以下だけでできるっぽい。
restorecon -R -v /root/.ssh
SELinuxわからんぷい。
※SELinuxをdisっているわけではありません!
こちらに詳細があります http://2done.org/index.php?id=76
ishikawa84g
はじめまして。石川と申します。
SSH 秘密鍵が sshd から読み取れない問題はあちこちで発生しています。
これは RHEL6系 から SSH も SELinux(targeted) の管理下に置いたことが原因です。
5系は秘密鍵を配置するだけでよかったのですが、6系からは秘密鍵の再ラベル付けが必要になりました。
既にたむたむさんの記事にもある通り、再ラベル付けを行えば sshd から秘密鍵を読みれるようになります。
上2つの Boolean は以下の動作を許可する場合にのみ必要です。
単純なログインを行う場合は不要です。無効で問題ありません。
allow_ssh_keysign: ホストベース認証(HostbasedAuthentication)を使用する場合に有効化
ssh_sysadm_login: root のロールを sysadm_r にした際に、sysadm_r で直接ログインを許可する場合に有効化
匿名
ぎゃあ、公開鍵です。。
ishikawa84g
焦り過ぎで変な投稿を。すみません。。
秘密鍵ではなく公開鍵(authorized_keys)です。
申し訳ありません。
タムタム
おお・・。解説ありがとうございます。
昨日書かれた記事も拝見しました。とても参考になります!