SSH 上的权限导致问题

SSH 上的权限导致问题

我正在尝试从本地计算机通过 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

我的本地机器

➜  .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

答案1

您希望私钥仅由所有者可读。通常,最好使该文件夹中的所有内容仅由所有者可读可写。但是,允许其他人通过密钥登录的文件必须由运行 ssh 守护程序的用户可读。

一般来说:

find ~/.ssh -type f -exec chmod 600 {} \;
chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

更新 ~/.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

这是在我移走原始 .ssh 并运行之后ssh 主机名.orgssh-keygen。openssh 命令创建的文件似乎不受umask

所以我仍然是对的,并且评论/反对票与我的回答无关:'(。

.ssh 之所以可以是 700,是因为 sshd 主要由 root 运行,而 root 可以读取任何内容。sshd 主要由 root 运行,是因为守护进程需要监听特权端口 (<1024)。

答案2

找到答案在此主题中。这不是 SSH 文件/文件夹的权限,而是用户目录的权限。

相关内容