我正在尝试对属于组织(我是管理员)的存储库使用部署密钥。

我创建了一个私钥/公钥对,将公钥粘贴到“部署密钥”窗口中并被接受。然后,我尝试通过git pull从一个远程存储库进行连接:

git add origin [email protected]:/organization/therepo.git
git pull

我一直被要求输入用户git的密码。我尝试改用用户gitgogs<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:初始注释)

07-28 10:47