![如何告诉 Git 使用不同的 SSH 配置文件?](https://linux22.com/image/1444403/%E5%A6%82%E4%BD%95%E5%91%8A%E8%AF%89%20Git%20%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%20SSH%20%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%EF%BC%9F.png)
当 Git 使用 SSH 时,我想为其指定很多选项。我们使用 ISPConfig,它将 Web 用户主目录的所有者设置为root
,这会导致很多麻烦,包括我无法设置任何 SSH 配置。设置变量$HOME
也不起作用。我必须编写git
命令以使用不同的 SSH 配置文件。这怎么可能呢?
答案1
如果你可以设置环境变量,我会首先尝试类似
export GIT_SSH_COMMAND="ssh -F /path/to/config"
但是这只适用于 Git 2.3+。假设你使用的是旧版本,你需要一些更复杂的东西:
echo "ssh -F /path/to/config-file" > /some/path/git-ssh-wrapper
chmod +x /some/path/git-ssh-wrapper
export GIT_SSH="/some/path/git-ssh-wrapper"
这是因为(来自 git 手册页):
要将选项传递给您想要在 GIT_SSH 中列出的程序,您需要将程序和选项包装到 shell 脚本中,然后将 GIT_SSH 设置为引用 shell 脚本