我正在尝试将更改转换为回购。 repo的起源最初位于不同的git服务器上,现在源已移动到另一台服务器。在新服务器上,我们有一个名为“app”的通用用户,在其他机器上我们添加了app用户私钥和配置文件,如下所示:
# in /root/.ssh/config
Host gitlab-app
HostName git.ist
User git
IdentityFile /root/.ssh/id_rsa_app
IdentitiesOnly yes
并且可以使用这样的命令来克隆repo:
git clone gitlab-app:software-development/my_repo.git
哪个有效。问题是在特定的服务器上我正在谈论已经从之前的位置克隆了repo。我已经将repo的远程url更改为新位置但是当我试图拉过ssh时,我被要求输入密码。我猜是因为gitlab主机上没有来自这个服务器的密钥。因此,通用的“app”用户。
我的问题是,当我以root用户身份运行pull命令时,如何配置我的repo以使用ssh的app用户密钥?
在其他一些主题中,我看到了这一点:
git config core.sshCommand 'ssh -i ~/.ssh/id_rsa_app -F /dev/null'
但它对我没有影响。
答案 0 :(得分:0)
好的,这是一个简单的解决方案。当我在服务器上更改了repo的remote-url时,我只是从gitlab页面复制并粘贴了标准url。我需要改变它是:
这
git@git.ist:software-development/my_repo.git
到
gitlab-app:software-development/my_repo.git
这样就实际使用了git配置文件。就像克隆链接一样。
基本上是这样的:
git remote set-url origin gitlab-app:software-development/my_repo.git