我正在尝试将部署密钥用于属于组织的存储库(我是管理员)。
我创建了一个私钥/公钥对,公众被粘贴到了部署密钥中。窗口,并接受。然后我尝试通过git pull
从远程存储库连接:
git add origin git@myserver.com:/organization/therepo.git
git pull
我一直被要求输入用户git
的密码。我尝试使用用户git
,gogs
,<my login>
,<the name or the organization>
- 我每次都会被要求输入密码。
我尝试了一个简单的ssh -v
来检查向gogs提供了哪个密钥:它是正确的密钥(上面的私钥,对应于部署(公共)密钥)。
我应该使用哪个用户进行连接?
答案 0 :(得分:4)
故障排除提示的所有功劳归于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://git@my.git.server.com:/organisation/therepo
From ssh://my.git.server.com:/organisation/therepo
* branch HEAD -> FETCH_HEAD
Already up-to-date.
请注意 是organisation
之前的斜线(re:初步评论)