SSH 权限导致问题

Oli*_*Ash 2 ssh permissions

我正在尝试从我的本地机器通过 SSH 连接到我的服务器。过去我不必输入密码,因为我的公钥位于authorized_keys. 但是,今天我认为某些文件的某些权限已更改,并且每次尝试 SSH 时都要求输入密码。

我的本地机器/服务器上 .ssh 文件夹及其内容的正确/默认权限是什么?

这是我当前的权限

我的服务器

[root@server9987 .ssh]# ls -la
total 24
drwx------ 2 root root 4096 Oct 17 03:29 .
drwxr-x--- 7 root root 4096 Oct 17 03:29 ..
-rw------- 1 root root  397 Oct 16 19:11 authorized_keys
-rw------- 1 root root 1675 Oct 12 02:10 id_rsa
-rw------- 1 root root  398 Oct 12 02:10 id_rsa.pub
-rwxrwxrwx 1 root root  830 Oct 17 03:29 known_hosts
Run Code Online (Sandbox Code Playgroud)

我的本地机器

?  .ssh  l
total 32
drwx------  6 Oliver  staff   204 17 Oct 00:28 .
drwxr-xr-x  7 Oliver  staff   238 16 Oct 17:28 ..
-rw-------  1 Oliver  staff   332 16 Oct 17:28 config
-rw-------  1 Oliver  staff  1766 13 Jul 11:13 id_rsa
-rw-------  1 Oliver  staff   398 13 Jul 11:13 id_rsa.pub
-rw-------  1 Oliver  staff  3312 17 Oct 00:28 known_hosts
Run Code Online (Sandbox Code Playgroud)

Яро*_*лин 5

您希望私钥可由所有者单独读取。使该文件夹中的所有内容只能由所有者读取和写入通常是一个好主意。但是,允许其他人通过密钥登录的文件必须可由运行 ssh 守护程序的用户读取。

一般来说:

find ~/.ssh -type f -exec chmod 600 {} \;
chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

更新 ~/.ssh 文件夹的默认权限是 700(openssh 5.9,gentoo)和一些文件:

$ ll .ssh; ll -d .ssh
-rw-r--r-- 1 jaroslav jaroslav 406 Oct 17 04:32 known_hosts
drwx------ 2 jaroslav jaroslav 4096 Oct 17 04:32 .ssh
-rw------- 1 jaroslav jaroslav 1766 Oct 17 04:37 id_rsa
-rw------- 1 jaroslav jaroslav  395 Oct 17 04:37 id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

这是在移动我原来的 .ssh 并运行ssh hostname.org 之后ssh-keygen。openssh 命令创建的文件似乎不受umask 的影响

所以我仍然是对的,评论/反对票对我的回答没有任何影响:'(。

.ssh 可以是 700 的原因是因为 sshd 主要由 root 运行,她无论如何都可以阅读她想要的任何内容。sshd 主要由 root 运行的原因是守护进程需要侦听特权端口 (<1024)。