SSHで公開鍵接続しようとしてつなげなかった。 [Linux]
SSH公開鍵接続をしようとして、以下のエラーが出た。
今までこんなエラー出たことなかったのにね。
ググると、~/.ssh を700のパーミッションにしろだとか
~/.ssh/authorized_keys を600のパーミッションにしろだとか
真っ先に出てくると思う。馬鹿みたいにそれ一辺倒なのね。同じような検索結果が出てきても嬉しくないよ。Googleは最近特に役に立たない。
そんなの真っ先に確認したし、パーミッションもオーナーも間違っちゃいないんだよ!
という方もいらっしゃるかと思います。
そんな時に確かめてほしいのがSELinuxの設定です。
SELinuxが公開鍵を読むのを邪魔をしているのです。
その証拠は/var/log/audit にあります(RHELの場合)。
でSELinuxを葬り去ってしまうのが面倒がないのですが、せっかくのSELinuxを台無しにしているとも言えます。他の問題も消え去るので厄介ごとが減るのはそうなんですが、SELinuxを使う前提で設定するとしたらどうなるんでしょうか? ググってみました。
そもそもSELinuxがどんなものなのかわかっていなかった。セキュリティ関係だということはわかっていたが、具体的に何をしているのだか知らなかった。そもそも面倒くさいらしくてオフにしていたのだもの。
むーん、わからんw
https://www.redhat.com/ja/topics/linux/what-is-selinux
ムービーとかセキュリティ関係でふわっとしすぎていてSELinuxのこと何もわからん。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/using_selinux/index?extIdCarryOver=true&sc_cid=701f2000001OH7EAAW
なんか読むのしんどいな。
今の時代に「とほほ」が広告とか以外の一番上に出てくるw
https://www.tohoho-web.com/ex/selinux.html
まだこっちのほうがわかりいいな。
とにかく、root権限で動いているプロセスを乗っ取られても、そのソフトが影響を及ぼせるファイルの範囲が決まっているから、被害を最小限に留めることができるって話かな?
そんでもって、OpenSSHに関しては、いちいち公開鍵の位置を事前に指定しておくことができないために、SELinuxで引っかかるという具合らしい。
そんでSELinuxとOpenSSHでググってみるとまともな例が出てこない。「SELinuxが悪さをしているらしい→できた」みたいな説明をすっ飛ばしたものしか無い。ひどすぎないか?w
というか、まともに設定すると面倒くさかったり、自分の情報を公開することになるからやらないのかな? どちらにしても具体的な例がほとんどない。多分みんなSELinuxオフにしているんだと思うw
実際に検証していないのだけれど、どうやらrestoreconを使えばいいらしい。
https://togetter.com/li/1044419?page=2
https://blog.afnf.net/blog/74
やってることは同じなのだけれど
か
をすればいいらしい。下の方が面倒がなさそうだけど、~/は効くのかな? それとパラメータのvvは重なっていていいものだろうか?
というか、パミッションのことばっか出てくるので、RHELみたいにSELinuxがデフォルトで恩になっているディストリビューションって少ないのかな? まぁRHELは商用に近いので、セキュリティを高める方向に持っていくのはわかるんだけどさ。めんどいから全部無効にしちゃえというのはわからんでもない。
今までこんなエラー出たことなかったのにね。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
ググると、~/.ssh を700のパーミッションにしろだとか
~/.ssh/authorized_keys を600のパーミッションにしろだとか
真っ先に出てくると思う。馬鹿みたいにそれ一辺倒なのね。同じような検索結果が出てきても嬉しくないよ。Googleは最近特に役に立たない。
そんなの真っ先に確認したし、パーミッションもオーナーも間違っちゃいないんだよ!
という方もいらっしゃるかと思います。
そんな時に確かめてほしいのがSELinuxの設定です。
SELinuxが公開鍵を読むのを邪魔をしているのです。
その証拠は/var/log/audit にあります(RHELの場合)。
su - setenforce 0 cp -piv /etc/selinux/config /etc/selinux/config.`date "+%Y%m%d"` sed -i -e "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
でSELinuxを葬り去ってしまうのが面倒がないのですが、せっかくのSELinuxを台無しにしているとも言えます。他の問題も消え去るので厄介ごとが減るのはそうなんですが、SELinuxを使う前提で設定するとしたらどうなるんでしょうか? ググってみました。
そもそもSELinuxがどんなものなのかわかっていなかった。セキュリティ関係だということはわかっていたが、具体的に何をしているのだか知らなかった。そもそも面倒くさいらしくてオフにしていたのだもの。
むーん、わからんw
https://www.redhat.com/ja/topics/linux/what-is-selinux
ムービーとかセキュリティ関係でふわっとしすぎていてSELinuxのこと何もわからん。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/using_selinux/index?extIdCarryOver=true&sc_cid=701f2000001OH7EAAW
なんか読むのしんどいな。
今の時代に「とほほ」が広告とか以外の一番上に出てくるw
https://www.tohoho-web.com/ex/selinux.html
まだこっちのほうがわかりいいな。
とにかく、root権限で動いているプロセスを乗っ取られても、そのソフトが影響を及ぼせるファイルの範囲が決まっているから、被害を最小限に留めることができるって話かな?
そんでもって、OpenSSHに関しては、いちいち公開鍵の位置を事前に指定しておくことができないために、SELinuxで引っかかるという具合らしい。
そんでSELinuxとOpenSSHでググってみるとまともな例が出てこない。「SELinuxが悪さをしているらしい→できた」みたいな説明をすっ飛ばしたものしか無い。ひどすぎないか?w
というか、まともに設定すると面倒くさかったり、自分の情報を公開することになるからやらないのかな? どちらにしても具体的な例がほとんどない。多分みんなSELinuxオフにしているんだと思うw
実際に検証していないのだけれど、どうやらrestoreconを使えばいいらしい。
https://togetter.com/li/1044419?page=2
https://blog.afnf.net/blog/74
やってることは同じなのだけれど
sudo restorecon -RFv home/[ユーザー名]/.ssh
か
# restorecon -FRvv ~/.ssh
をすればいいらしい。下の方が面倒がなさそうだけど、~/は効くのかな? それとパラメータのvvは重なっていていいものだろうか?
というか、パミッションのことばっか出てくるので、RHELみたいにSELinuxがデフォルトで恩になっているディストリビューションって少ないのかな? まぁRHELは商用に近いので、セキュリティを高める方向に持っていくのはわかるんだけどさ。めんどいから全部無効にしちゃえというのはわからんでもない。
コメント 0