在msysgit窗口中永久添加SSH密钥

时间:2011-08-29 06:31:09

标签: git ssh github msysgit

我处在一种情况,我需要我的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中也有所不同。

stackoverflow中的其他答案只能帮助我解决上述问题。如果我做

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没有真正永久地添加密钥!在详细模式下查看调试消息时,不会提供添加的密钥。

当sshing到github时,是否还要永久添加要提供的ssh密钥列表?我今天大多是Windows用户,所以请在答案中详细说明。

1 个答案:

答案 0 :(得分:6)

我建议使用类似于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进行连接,您可以轻松切换密钥。