当我尝试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


评论

我只是有同样的消息。我的情况不一样。我设置了一个全局IdentityFile〜/ .ssh / id_rsa,因此当我尝试访问user@myserver.com时,它尝试使用该id_rsa而不问我密码。避免使用全局IdentityFile,一切都会顺利进行。

#1 楼

我需要具有rw才能在config上获得仅用户权限。这样可以解决此问题。

chmod 600 ~/.ssh/config


下面其他人指出,它可能是文件所有者。 (支持他们!)

chown $USER ~/.ssh/config


评论


有时,导致问题的不仅是权限,还包括所有者。就我而言,我也必须这样做:chown -R robert:robert〜/ .ssh

– Nicolas C
15年1月26日在12:27



就我而言,从644上升到600可以解决问题。

– Magicsowon
16-10-18在18:15

只需阅读许可就足够了,即400

– 030
17年1月2日,0:06

对我来说,600没用,只有400(在Ubuntu Xenial上)

–马丁·科尔(MartínColl)
17-10-25在0:35

@ 030,只要您不打算编辑文件即可。

–西恩·比恩
17年11月16日在13:31

#2 楼

这些命令应该可以解决权限问题:

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


如果文件是由其他用户拥有(或您无权访问),则以sudo作为前缀。 />
如果更多文件受到影响,请将config替换为*

man ssh中,我们可以看到:


由于存在滥用的可能性,此文件必须具有严格的权限:用户读/写,并且不能被其他人写。如果所讨论的组仅包含用户,则它可能是组可写的。


评论


这对我有用。我正在使用cygwin和cygwin .ssh与Windows用户.ssh符号链接。我必须在cygwin窗口中运行这些命令。

–达摩达(Damodar Bashyal)
16-4-27的5:54

这对我有用。

– Viraj Wadate
19年5月25日在7:17

这对我有用。不需要chown,因为该文件已经从正确的帐户拥有。在阅读此答案之前,我还不了解权限可能是错误的。

–kiamlaluno
5月29日18:46

是的,我发现自己不时地回到这个答案:-)

–ArchNoob
12月2日10:04

#3 楼

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

sudo chown myuser ~/.ssh/config


#4 楼

如果在Linux的Windows子系统(WSL)上,并且将WSL主目录指向Windows主目录(不推荐!),则chmod无效。在您可以在其他答案中提及的文件之前,必须先在您的chmod中添加

[automount]
options = "metadata"


,然后重新启动WSL(需要内部版本17093或更高版本)。

安装前说:

C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,case=off)


安装后说:

C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,metadata,case=off)


评论


我在Windows 10版本1903上,而WSL中的chmod才起作用。

– ahofmann
19-10-23在15:05

#5 楼

不要忘了这个小组:

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


:-)

评论


如果文件不是组可写的,则组​​无关紧要。如果是,则该组最多必须包含该用户。

– Piotr P. Karwasz
1月13日23:23

我只是认为,如果此文件意外具有错误的用户,它也可能具有错误的组。为了使所有事情都做对,我们最好也注意小组。

–亚历山大·加夫里留克(Alexander Gavriliuk)
1月14日13:24

#6 楼

我在Windows 10上使用vagrant ssh遇到了这个问题。并尝试了上述所有方法,但没有成功。最后,我删除了该ssh配置文件,然后它起作用了!

vagrant ssh
Bad owner or permissions on C:\Users\Jeff/.ssh/config
del ..\.ssh\config

vagrant ssh
Welcome to Ubuntu 14.04.6 LTS (GNU/Linux 3.13.0-170-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Thu Feb 27 02:23:03 UTC 2020

  System load:  0.0               Processes:              77
  Usage of /:   5.1% of 39.34GB   Users logged in:        0
  Memory usage: 21%               IP address for eth0:    10.0.2.15
  Swap usage:   0%                IP address for docker0: 172.17.0.1

  Graph this data and manage this system at:
    https://landscape.canonical.com/

New release '16.04.6 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


vagrant@vagrant-ubuntu-trusty-64:~$



评论


如果登录到远程ssh主机时需要使用配置文件的内容,这将无济于事

–时髦的Linux用户
9月1日下午1:18