问题 多个bitbucket帐户的ssh配置 - 简单的例子,但是'远程端挂起意外'


假设我的bitbucket用户名是“jon”,我有一些个人项目 https://bitbucket.org/jon

假设我加入了一个开发团队,该团队有一个名为“devteam”的bitbucket帐户,可以在这里找到 https://bitbucket.org/devteam

然后假设我正在建立一台新机器。我生成一个ssh密钥对, id_rsa 和 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 我的关键 jon 在bitbucket帐户。

现在我有两个密钥对, 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

1478
2018-01-19 00:19


起源

进入 /home/jon/.ssh/ 并运行ls -alh来检查您是否是config的所有者。还试着用git clone运行 -v 旗。 - Piotr Jaszkowski
还检查文件的权限。 - William Seiti Mizuta
嗯,好吧我已编辑添加该信息。看起来我和我的组对配置文件具有读写权限。 - jononomo


答案:


我有同样的问题。 我改变了文件的权限后 ~/.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

14
2017-10-31 12:44



和: chown $USER config 以防万一。 - kenorb
这仍然不适合我 - chirag shah


它是关于出现的RSA文件 ../.ssh/ 文件夹我通过删除任何损坏的文件修复此问题,然后在安装GitHub时再次生成。


0
2018-03-17 16:21





这些命令应该解决问题:

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

前缀用 sudo 如果文件归不同用户所有。

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

man ssh 我们可以读到:

由于可能存在滥用行为,因此该文件必须具有严格的权限:对用户进行读/写操作,而不是   别人可写的。如果所讨论的组仅包含用户,则它可以是组可写的。


0
2017-08-03 11:28