我正在尝试对属于组织(我是管理员)的存储库使用部署密钥。
我创建了一个私钥/公钥对,将公钥粘贴到“部署密钥”窗口中并被接受。然后,我尝试通过git pull
从一个远程存储库进行连接:
git add origin [email protected]:/organization/therepo.git
git pull
我一直被要求输入用户
git
的密码。我尝试改用用户git
,gogs
,<my login>
,<the name or the organization>
-每次都要求输入密码。我尝试了一个简单的
ssh -v
来检查提供给gogs的密钥:它是正确的密钥(上面的私有(private)密钥,对应于部署(公共(public))密钥)。我应该使用哪个用户进行连接?
最佳答案
故障排除想法的全部功劳归于David Cullen(通过他的评论)
问题是我调用了错误的sshd
服务。
我的GOGS服务在docker中运行,并且ssh
端口与主机服务器之一不同(这是我使用默认端口22调用的端口):
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
86ddbabc8cbb gogs/gogs "docker/start.sh /bin" 13 days ago Up 3 minutes 0.0.0.0:3000->3000/tcp, 0.0.0.0:10022->22/tcp gogs
通过使用〜/.ssh/config这样的文件
Host my.git.server.com
Port 10022
IdentityFile /var/www/.ssh/my.private.key.openssh
IdentitiesOnly yes
现在,我成功地从远程服务器中提取了GOGS存储库:
$ git pull ssh://[email protected]:/organisation/therepo
From ssh://my.git.server.com:/organisation/therepo
* branch HEAD -> FETCH_HEAD
Already up-to-date.
请注意,在
organisation
之前的是的斜线(re:初始注释)