~/.ssh以下のパーミッションの一括設定

CentOS 7だと~/.ssh以下のパーミッションを適切に設定しておかないとsshでログインできなかった。 Ubuntu 18.04はそんなことはなかったので、Ubuntusshdの設定が少しゆるい? そこで、以下のように設定する。

  • ディレクトリはオーナーのみ読み書き閲覧可能
  • ファイルはオーナーのみ読み書き可能
  • 鍵はオーナーのみ読み込み可能

これがベストなのかは正直不明。 パーミッションの一括設定のコマンドをメモっておく。

$ find ~/.ssh -type d | xargs chmod 0700
$ find ~/.ssh -type f | xargs chmod 0600
$ find ~/.ssh -type f | grep -E '/id_rsa(\.pub)?$' | xargs chmod 0400

上記コマンド実行後のパーミッションの例は以下。

$ ls -la ~/.ssh
合計 32
drwx------  3 redj redj 4096  7月 10 05:32 .
drwxr-xr-x 26 redj redj 4096  7月 10 05:32 ..
-rw-------  1 redj redj  389  7月 10 05:21 authorized_keys
-rw-------  1 redj redj  279  7月 10 04:58 config
drwx------  2 redj redj 4096  7月 10 05:23 config.d
-r--------  1 redj redj 1675  7月 10 05:21 id_rsa
-r--------  1 redj redj  389  7月 10 05:21 id_rsa.pub
-rw-------  1 redj redj  444  6月 28 00:19 known_hosts