在Mercurial中,我可以在.hg/hgrc
中指定用于SSH每个存储库的命令(以及证书),例如:
[ui]
...
ssh = "C:\path\to\ssh.exe" -i "C:\Development\Identities\identity1.id_rsa"
我在配置Git时可以找到的大多数说明似乎都使用捆绑的ssh.exe
来管理证书,例如GitHub's guide for Windows。有一种方法可以通过环境变量为Git指定用于SSL的脚本(here在“没有可用的支持的身份验证方法”下),但对于每个用户而言并不够精细。</ p>
如何在Git中指定每个存储库的SSH命令行?
答案 0 :(得分:3)
我不知道如何让git
这样做。但是ssh
应该足够灵活,可以做到这一点。
首先请注意,您可以指定多个身份文件。它将依次尝试多个身份,直到一个被接受为止。
其次,在unix下,如果您只想为某些主机尝试某些身份,则可以通过修改~/.ssh/config
来实现此目的,例如:
Host <hostname>
IdentitiesOnly yes
IdentityFile "C:\Development\Identities\identity1.id_rsa"
虽然我不知道这对你的捆绑式Windows ssh客户端是否有效,或者配置文件的用途是否适用。如果有的话。
编辑:如果你想在同一台主机上使用两个不同的身份,也可以这样做:
Host <alias1>
HostName <realhostname>
IdentiesOnly yes
IdentityFile identity1
Host <alias2>
HostName <realhostname>
IdentiesOnly yes
IdentityFile identity2
并使用和作为git
中的主机(有大量支持将一个主机视为另一个主机,或使用url.<base>.insteadOf
等配置选项进行更强大的重写。