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