为每个存储库指定 Git 的 SSH 配置
在 Mercurial 中,我可以在 .hg/hgrc
中指定用于 SSH 每个存储库的命令(以及证书),例如:
[ui]
...
ssh = "C:\path\to\ssh.exe" -i "C:\Development\Identities\identity1.id_rsa"
我能找到的配置 Git 的大多数说明似乎都使用捆绑的 < code>ssh.exe 来管理证书,例如 GitHub 的 Windows 指南。有一种方法可以指定 Git 用于 SSL 的脚本(此处位于“不支持可用的身份验证方法”)通过环境变量,但是每个用户的身份验证方法对我来说不够精细。
如何在 Git 中指定每个存储库的 SSH 命令行?
In Mercurial, I can specify the command (and thus the certificate) used for SSH per-repository in .hg/hgrc
, for example:
[ui]
...
ssh = "C:\path\to\ssh.exe" -i "C:\Development\Identities\identity1.id_rsa"
Most instructions I can find on configuring Git seem to use the bundled ssh.exe
to manage the certificates, for example GitHub's guide for Windows. There is a way of specifying a script for Git to use for SSL (here under "No supported authentication methods available") via an environment variable, but that per user and not granular enough for me.
How can I specify a per-repository SSH command line in Git?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道有什么方法可以让 git 做到这一点。但是 ssh 应该足够灵活来做到这一点。
首先请注意,您可以指定多个身份文件。它将依次尝试多个身份,直到其中一个被接受。
其次,在 unix 下,如果您只想对某些主机尝试某些身份,则可以通过修改
~/.ssh/config
来实现以下目的:虽然我不知道是否这将适用于您捆绑的 Windows ssh 客户端,或者配置文件所在的位置(如果适用)。
编辑:如果您想在同一主机上使用两个不同的身份,也可以这样做:
并使用 和 作为 git 中的主机(有大量支持将一台主机视为另一台主机,或者做使用诸如 url.
I'm unaware of a way to make
git
do this. Butssh
should be flexible enough to do it instead.First note that you can specify more than one identity file. It will try multiple identities in turn, until one is accepted.
Second, under unix, if you want only certain identities to be tried for certain hosts, you can do so by modifying
~/.ssh/config
to have stanzas such as:Though I don't know if that will work for your bundled windows ssh client, or where the config file goes, if it does.
EDIT: if you want to use two different identities on the same host, that can be done too:
and use and as the hosts in
git
(there is substantial support to treat one host as another, or do even stronger rewriting with config options such asurl.<base>.insteadOf
.