我按照 Bitbucket 的说明添加了 SSH 密钥并使用 git,而不必每次都进行身份验证。我按照此处的说明进行操作。然后我收到以下消息:ssh -T [email protected]
Bad owner or permissions on /home/centos/.ssh/config
检查 SSH 权限后显示:
cat ~/.ssh/config
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
并且~/.ssh/id_rsa
存在并包含我的私钥。公钥已添加到 Bitbucket 中的 SSH 密钥中,我收到的错误消息不在他们的故障排除指南中。
系统是 CentOS Linux 版本 7.0.1406 (Core),git 版本 1.8.3.1,SSH 密钥在 5 小时前添加到 Bitbucket。不确定是否相关,centos
CentOS 机器上的用户是自动创建的,我使用身份文件登录(我没有密码)。此外,Bitbucket 存储库运行良好,我可以从另一台计算机使用它,没有问题。两个 SSH 密钥都列在我的 Bitbucket 帐户下。
更新:我得到的两个答案都提到了权限,但我已经检查过了。~/.ssh/id_rsa
和分别由我的用户和~/.ssh/id_rsa
所有。 我甚至尝试对这两个文件进行 chmod,但得到了相同的消息。664
600
777
答案1
我得到的两个答案都提到了权限,但我已经检查过了。
~/.ssh/id_rsa
和分别由我的用户和~/.ssh/id_rsa
所有 。 我甚至尝试对这两个文件进行 chmod,但得到了相同的消息。664
600
777
777
权限永远不会起作用。SSH 权限非常严格,像这样开放权限只会导致错误。此外,您对其他问题的评论表明这些是您当前的权限:
-rw-rw-r--. 1 centos centos 47 May 17 20:33 /home/centos/.ssh/config
这些是664
的权限-rw-rw-r--
。您想要的是600
的权限-rw-------
。因此,请尝试这样做;首先~/.ssh/config
像这样更改权限:
chmod 600 /home/centos/.ssh/config
现在对~/.ssh/id_rsa
chmod 600 /home/centos/.ssh/id_rsa
另外,我不太确定 Bitbucket SSH 域/用户组合是什么,但使用带有-v
(verbose) 标志的 SSH 命令来调试该过程以详细了解正在发生的事情可能是值得的。这样的命令会有所帮助:
ssh -v -T [email protected]
将-v
是详细输出,并将-T
SSH 设置为“禁用伪终端分配”,因此它不会创建真正的交互式会话;它本质上只是尝试连接到远程主机,然后断开连接。对测试很有用。
答案2
正如错误所指示的...使用类似以下命令检查所有权和权限ls -l /home/centos/.ssh/config
。
它应该归您所有 ( centos
),并且模式为600
( rw-------
) 或400
( r--------
)。
答案3
我会运行一个
sudo chown <username>:<username> ~/.ssh/config
您的系统用户名在哪里<username>
将文件所有者更改为<username>
删除它,然后使用当前用户(而不是使用 sudo)重新创建它也可以。我怀疑这是由于以 root 身份创建文件造成的。