在 msysgit windows 中永久添加 SSH 密钥

Posted

技术标签:

【中文标题】在 msysgit windows 中永久添加 SSH 密钥【英文标题】:Adding an SSH-key permanently in msysgit windows 【发布时间】:2011-11-05 19:29:54 【问题描述】:

我处于一种情况,我需要我的 msysgit 使用不同的键与 github 对话。然而 git bash 坚持使用名为 id_rsa ONLY 的密钥文件。如果我执行 ssh -vT git@github.com 我只会看到 id_rsa 被提供。

所以每当我需要使用任何其他键时,我都必须这样做,

ssh-agent bash
ssh-add ~/.ssh/mygithubkey
git clone git@github.com:myaccount/myrepo.git

或在需要时将 mygithubkey 重命名为 id_rsa 将原始 id_rsa 备份到另一个文件 anotherkey

当然这很痛苦,特别是因为命令历史记录在常规 git bash 中也不同。

*** 中的其他答案仅有助于达到我的上述解决方法。如果我这样做了

ssh-add ~/.ssh/mygithubkey

直接在我的 git bash 中,它说无法连接到 ssh-agent。如果我这样做了

ssh-agent ssh-add ~/.ssh/mygithubkey
git pull
ssh -vT git@github.com

直接在我的git bash中,它说权限被拒绝,看来ssh-add并没有真正永久添加密钥!并且在详细模式下查看调试消息时不提供添加的密钥。

在 ssh 到 github 时,是否有永久添加要提供的 ssh 密钥列表?我今天主要是 Windows 用户,所以请详细回答。

【问题讨论】:

为什么需要多个键?一把钥匙应该就是你所需要的。 你说得对,我可以一键搞定,但作为一个学术问题,这里的人们可以尝试回答吗?? 这是可能的,但很麻烦,真的不值得这样做:help.github.com/multiple-ssh-keys 【参考方案1】:

我建议使用类似于this answer 的~/.ssh/config 文件。比如:

Host github1
    User git
    Hostname github.com
    IdentityFile ~/.ssh/mygithubkey

Host github2
    User git
    Hostname github.com
    IdentityFile ~/.ssh/myothergithubkey

这样您就可以通过键入ssh github1ssh github2 来轻松切换键以进行连接。

【讨论】:

在 Windows 上会是什么? 波浪号 (~) 是当前用户主目录的占位符,即 Windows 上 %HOMEDRIVE%%HOMEPATH% 的组合所指向的内容。从 Windows Vista 开始,这将类似于 C:\Users\<username>,因此配置文件将位于 C:\Users\<username>\.ssh\config

以上是关于在 msysgit windows 中永久添加 SSH 密钥的主要内容,如果未能解决你的问题,请参考以下文章

适用于 Windows 的 Git-scm、msysGit 和 Git 之间的区别

windows下git怎么管理权限

在 msysgit 中运行 MinGW/MSYS 工具

如何在windows下安装GIT

windows10s的具体内容和永久激活步骤和方法

windows7 下,在CMD命令模式下,如何添加永久路由? 麻烦说详细一点。