ssh 返回“~/.ssh/config 上的所有者或权限错误”

ssh 返回“~/.ssh/config 上的所有者或权限错误”

当我尝试 ssh 到另一个盒子时,我收到这个奇怪的错误

$ ssh hostname
Bad owner or permissions on ~/.ssh/config

但我确保我拥有该文件并对其具有 rw 权限:

ls -la ~/.ssh/
total 40K
drwx------ 2 robert robert 4.0K Mar 29 11:04 ./
drwx------ 7 robert robert 4.0K Mar 29 11:04 ../
-rw-r--r-- 1 robert robert 2.0K Mar 17 20:47 authorized_keys
-rw-rw-r-- 1 robert robert   31 Mar 29 11:04 config
-rw------- 1 robert robert 1.7K Aug  4  2010 id_rsa
-rw-r--r-- 1 robert robert  406 Aug  4  2010 id_rsa.pub
-rw-r--r-- 1 robert robert 6.1K Mar 29 11:03 known_hosts

答案1

我需要为配置赋予仅限用户的 rw 权限。这样就解决了问题。

chmod 600 ~/.ssh/config

正如其他人在下面指出的那样,它可能是文件所有者。(给他们点赞!)

chown $USER ~/.ssh/config

如果整个文件夹的权限无效,则以下是可能的权限表:

小路 允许
.ssh 目录(代码 0700(drwx------)
私钥(例如:id_rsa)(代码 0600 (-rw-------)
config 0600 (-rw-------)
公钥(*.pub 例如id_rsa.pub:) 0644 (-rw-r--r--)
authorized_keys代码 0644 (-rw-r--r--)
known_hosts 0644 (-rw-r--r--)

资料来源:

答案2

这些命令应该可以修复权限问题:

chown $USER ~/.ssh/config
chmod 644 ~/.ssh/config

sudo如果文件由不同的用户拥有(或者您无权访问它们),则以 为前缀。

如果有更多文件受到影响,请替换config*

我们man ssh可以读到:

由于可能存在滥用行为,此文件必须具有严格的权限:用户可读/写,其他人不可写。如果相关组仅包含用户,则它可能为组可写。

答案3

对我来说,问题在于我的用户帐户不是该文件的所有者

sudo chown myuser ~/.ssh/config

答案4

不要忘记这个群体:

chown $USER:$USER ~/.ssh/config

:-)

相关内容