【问题标题】:Specify SSH configuration for Git per-repository为每个存储库的 Git 指定 SSH 配置
【发布时间】:2011-10-19 05:11:02
【问题描述】:

在 Mercurial 中,我可以在 .hg/hgrc 中指定用于 SSH per-repository 的命令(以及证书),例如:

[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 在“没有可用的支持的身份验证方法”下),但是每个用户都可以,对我来说不够精细。

如何在 Git 中指定每个存储库的 SSH 命令行?

【问题讨论】:

    标签: git mercurial ssh


    【解决方案1】:

    我不知道有什么方法可以让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
    

    并使用 and 作为 git 中的主机(大量支持将一台主机视为另一台主机,或者使用 url.&lt;base&gt;.insteadOf 等配置选项进行更强大的重写。

    【讨论】:

    • 谢谢,虽然这不是我所希望的,但效果很好。我也遇到了多个安装 Git 的问题,我最终卸载了所有的 Git,除了 Cygwin 的,它非常理智并使用 c:\cygwin\home\[USERNAME]\.ssh\config
    猜你喜欢
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 2013-03-22
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多