【发布时间】:2015-11-19 15:57:12
【问题描述】:
OS Description: Ubuntu 14.04.3 LTS
ssh: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014
我无法为 gitlab 使用多个 ssh 密钥。我得到的错误是
GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我很确定我做的一切都是正确的 这是我的配置文件
Host work gitlab.com
Hostname gitlab.com
IdentityFile ~/.ssh/ida_rsa
User git
Host integrate gitlab.com
Hostname gitlab.com
IdentityFile ~/.ssh/ida_rsa_personal
User git
密钥是在 ssh-agent 中自动添加的,但为了确保我也手动添加了密钥
$ ssh-add -l
2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)
2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)
我的 ssh-agent 也在运行
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-uTC6tA5HMt1x/agent.4899; export SSH_AUTH_SOCK;
SSH_AGENT_PID=4900; export SSH_AGENT_PID;
echo Agent pid 4900;
ssh key的权限
-rw------- 1 yogi yogi 1679 jun 25 15:38 id_rsa
-rw------- 1 yogi yogi 1679 ago 25 10:53 id_rsa_personal
-rw-r--r-- 1 yogi yogi 404 ago 25 10:53 id_rsa_personal.pub
-rw-r--r-- 1 yogi yogi 391 jun 25 15:41 id_rsa.pub
我在 gitlab 上添加了我的 ssh 公钥。
谁能告诉我我错过了什么?
注意:- 我注意到在我的两个 ssh 密钥中,位于顶部的 ssh 密钥(id_rsa - e7:08 ....)工作正常。
$ ssh-add -l
**2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)**
2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)
如果我在 id_rsa 之后添加 id_rsa_personal(ff:22..),则 id_rsa_personal 开始正常工作,而 id_rsa 停止工作。
$ ssh-add -l
**2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)**
2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)
我认为,ssh-agent 无法遍历密钥。它只读取第一个键并停止。 这是 openssh 中的错误吗?如果是,任何解决方法?
谢谢
【问题讨论】:
-
您尝试连接到 gitlab 的命令是什么?您是通过代理还是通过配置提供密钥?如果您只想使用特定身份,请确保还指定
IdentitiesOnly选项 -
我正在尝试使用 git clone、git pull、git push。
-
ssh-agent 不采用第一个,我的正确 ssh-key 在顶部也遇到了同样的问题。
-
Host integrate gitlab.com楼主可以有空格吗?你用什么名字来推/拉? -
@Holloway 不,
Host的参数是主机名列表,以空格分隔。我猜第二个gitlab.com会覆盖第一个,或者反过来。
标签: git ssh gitlab openssh ssh-agent