由于我与一些同事共享Alma Linux服务器上的登录信息,我试图更好地理解不同设置的优先级。我们主要使用服务器来运行耗时的Python脚本、数值方法和AI东西。我们通过 SSH 从本地 Windows 计算机登录。我们通过自托管的 Gitlab 服务器提取脚本git
,或通过scp
.
我们每个人都有他/她的 SSH 密钥对,位于~/.ssh
. (这与以下情况相同一人有多种的SSH 密钥对。)现在,有多种方法可以通过 SSH 指定git
用于pull
/ 的密钥push
。我可以指定它
~/.ssh/config
作为IdentityFile ~/.ssh/id_rsa
- 全局
.gitconfig
通孔git config --global core.sshCommand "ssh -v -i ~/.ssh/id_rsa"
- 每个存储库在本地
.gitconfig
通过git config core.sshCommand "ssh -v -i ~/.ssh/id_rsa"
当我使用一键 SSH 配置方法(例如~/.ssh/id_ed25519
)并将本地设置.gitconfig
为 时~/.ssh/id_rsa
,git push
仍然会使用前者而不是后者。这表明 SSH 配置设置以某种方式覆盖了 local .gitconfig
,这不应该是我发现的情况。但是,当我注释掉 中的该行时~/.ssh/config
,它会按预期工作。
所以我的问题是:有人可以解释一下顺序吗git
所以我的问题是:有人可以解释一下通过 SSH 读取设置的吗?另外,如果我改变这个会发生什么通过环境变量, 例如GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa' git pull
?这会覆盖特定主机的~/.ssh/config
/吗?.gitconfig