在 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 github1
或ssh github2
来轻松切换键以进行连接。
【讨论】:
在 Windows 上会是什么? 波浪号 (~
) 是当前用户主目录的占位符,即 Windows 上 %HOMEDRIVE%%HOMEPATH%
的组合所指向的内容。从 Windows Vista 开始,这将类似于 C:\Users\<username>
,因此配置文件将位于 C:\Users\<username>\.ssh\config
。以上是关于在 msysgit windows 中永久添加 SSH 密钥的主要内容,如果未能解决你的问题,请参考以下文章