SSHの基本構成

SSHの基本構成

最も基本的なSSH構成の場合、通常は次のようにします。

nano /etc/ssh/sshd_config && service ssh restart # Genral basic configuration like disabling all root logins;
nano ~/.ssh/authorized_keys && service ssh restart # Put your public keys inside;
chmod ~/.ssh 700
chmod ~/.ssh/authorized_keys 600
ssh USER@IP -vvv -L 22:localhost:22 # or [email protected] # Tunnel via SSH with verbose debugging

これを行うべきかどうか疑問に思いますchmod ~/.ssh 700 -R

私がチャットでこの質問をしたところ、terdonはこう答えました。

chmod ~/.ssh 700 -R この設定から読み取りアクセスを削除したので、ssh が中断されることを願っています。

以後、700所有者と同じグループのユーザーおよびルート以外のすべてのユーザーは、実際にはSSHデータを読み取ることができません。

所有者に読み取り権限がある限り問題になりますか?

答え1

chmod ~/.ssh 700 -R この設定から読み取りアクセスを削除したので、ssh が中断されることを願っています。

ええ、いや?

-bash-4.2$ chmod -R 700 .ssh
-bash-4.2$ logout
...
% ssh somelinooxbox
...
-bash-4.2$ ls -l .ssh/authorized_keys
-rwx------ 1 jhqdoe xxxxxx 178 Aug 10  2018 .ssh/authorized_keys
-bash-4.2$ 

したがって、非ユーザーの場合、これは実際にはCentos7テストホストでは問題になりませんrootrootそれも問題ありませんchmod -R 700 ~/.ssh)。

関連する質問は、「sshdプロセスはどのユーザーとして実行されますか?」です。rootまたは、ユーザーだと推測できます。root通常、すべてのファイルを読み取ることができます(NFSまたは暗号化されたホームディレクトリのさまざまな例外を除く)、ユーザーはそのファイルとしてマークされたファイルを読み取るのに問題はありませんrwx。私たちは推測する必要はありません:

% ssh -o ControlMaster=no somelinooxbox
...
-bash-4.2$ sudo sysdig -p %user.uid fd.name = ~/.ssh/authorized_keys

その後、他の場所で新しい接続が行われます。sysdig表示されたプロセスは、~/.ssh/authorized_keysユーザーが実行してもchmod -R 700 ...十分な権限がある場合でも、ユーザーが接続している間実行されていると読み取られます。

もちろん、ストレイ+xビットを追加するのはせいぜい不要であり、悪い場合は実際には実行できないいくつかの実行可能ファイルが生成される可能性があるため、そのヒントに対する他の答えを参照するか、Xそれ以外の場合はディレクトリが0700、ファイルが0600を取得するかどうか確認してください。

(selinuxやapparmourなどのソフトウェアは問題を引き起こす可能性がありますが、これは追加の問題です。缶詰ミツバチ一般的な権限より高いです。 )

答え2

シンボルモードはどうですか?ほとんどの現代人はchmod(すべてではありませんが)これを行うことができます。

chmod -R go=,u=rwX ~/.ssh

これにより、ディレクトリに対する実行権限のみが付与され、グループや他のユーザーに対する権限は削除され、完全な権限が付与されます。

関連情報