假设我的bitbucket用户名是“jon”,我在https://bitbucket.org/jon
有一些个人项目。
假设我加入了一个开发团队,该团队有一个名为“devteam”的bitbucket帐户,可以在https://bitbucket.org/devteam
然后假设我正在设置一台新机器。我生成了id_rsa
中的ssh密钥对id_rsa.pub
和~/.ssh
。然后我的开发团队负责人将我的id_rsa.pub
公钥添加到bitbucket上的devteam帐户。现在我可以从devteam帐户克隆项目并开始工作。
接下来,我想与自己的jon
帐户进行互动。但是,我无法将id_rsa.pub
密钥添加到我的bitbucket帐户,因为bitbucket告诉我该密钥已添加到帐户中。这意味着我必须生成第二个密钥对。所以我按照此处的说明运行ssh-keygen -f ~/.ssh/jon -C "jon"
:https://confluence.atlassian.com/pages/viewpage.action?pageId=271943168然后我将此jon.pub
密钥添加到我位于bitbucket的jon
帐户。
既然我有两个密钥对id_rsa
和jon
,我必须配置哪个密钥在何时使用。按照上面链接的bitbucket帮助页面上的说明,我在config
目录中创建了一个~/.ssh
文件,其中包含以下内容:
Host devteam
HostName bitbucket.org
IdentityFile ~/.ssh/id_rsa
Host jon
HostName bitbucket.org
IdentityFile ~/.ssh/jon
然后我被告知我可以进行以下替换:从git@bitbucket.org:jon/reponame.git
到git@jon:jon/reponame.git
所以我尝试执行以下命令:git clone git@jon:jon/reponame.git
,我收到以下错误:
Initialized empty Git repository in /home/jon/dev/reponame/.git/
Bad owner or permissions on /home/jon/.ssh/config
fatal: The remote end hung up unexpectedly
我做错了什么?
编辑:以下是~/.ssh
目录中的文件权限:
[jon@linuxmachine ~/.ssh]
1$ ls -alh
total 32K
drwx------. 2 jon 4.0K Jan 18 19:20 ./
drwx------. 11 jon 4.0K Jan 18 19:34 ../
-rw-rw-r--. 1 jon 132 Jan 18 19:20 config
-rw-------. 1 jon 1.8K Jan 18 15:21 id_rsa
-rw-r--r--. 1 jon 406 Jan 18 15:21 id_rsa.pub
-rw-------. 1 jon 1.7K Jan 18 18:45 jon
-rw-r--r--. 1 jon 390 Jan 18 18:45 jon.pub
-rw-r--r--. 1 jon 808 Jan 18 18:40 known_hosts
答案 0 :(得分:14)
我遇到了同样的问题。
在我将文件~/.ssh/config
的权限更改为-rw-r--r--
后,错误
Bad owner or permissions on /home/username/.ssh/config
fatal: The remote end hung up unexpectedly
消失。
在控制台中写:
cd ~/.ssh
chmod 644 config
答案 1 :(得分:0)
关于出现在../.ssh/
文件夹上的RSA文件我通过删除任何损坏的文件来修复此问题,然后在安装GitHub时再次生成。
答案 2 :(得分:0)
这些命令可以解决问题:
chown $USER ~/.ssh/config
chmod 644 ~/.ssh/config
如果文件归不同用户所有,则为sudo
前缀。
如果有更多文件受到影响,请将config
替换为*
。
在man ssh
我们可以阅读:
由于可能存在滥用行为,因此该文件必须具有严格的权限:读取/写入用户,而不是 别人可写的。如果相关组仅包含用户,则它可以是组写的。