$ 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才能在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
评论
我只是有同样的消息。我的情况不一样。我设置了一个全局IdentityFile〜/ .ssh / id_rsa,因此当我尝试访问user@myserver.com时,它尝试使用该id_rsa而不问我密码。避免使用全局IdentityFile,一切都会顺利进行。