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

Zas*_*asz 7 git ssh github msysgit

我处于这种情况,我需要我的msysgit用不同的密钥与github交谈.但是git bash坚持使用名为id_rsa的密钥文件.如果我做ssh -vT git@github.com我看到只提供id_rsa.

因此,每当我需要使用任何其他密钥时,我必须完成所有这些,

ssh-agent bash
ssh-add ~/.ssh/mygithubkey
git clone git@github.com:myaccount/myrepo.git
Run Code Online (Sandbox Code Playgroud)

或者在我需要时将其重命名mygithubkeyid_rsa将原始id_rsa备份到另一个文件anotherkey

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

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

ssh-add ~/.ssh/mygithubkey
Run Code Online (Sandbox Code Playgroud)

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

ssh-agent ssh-add ~/.ssh/mygithubkey
git pull
ssh -vT git@github.com
Run Code Online (Sandbox Code Playgroud)

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

无论如何,当sshing到github时,永久性地添加一个ssh密钥列表?我是ssh配置中的菜鸟,所以请在答案中详细说明.

ssc*_*rth 6

我建议使用~/.ssh/config此答案相似的文件。就像是:

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

Host github2
    User git
    Hostname github.com
    IdentityFile ~/.ssh/myothergithubkey
Run Code Online (Sandbox Code Playgroud)

这样,您可以通过键入ssh github1ssh github2连接轻松地切换键。

  • 波浪号(〜)是当前用户主目录的占位符,即Windows上%HOMEDRIVE %% HOMEPATH%的组合所指向的位置。从Windows Vista开始,它将类似于`C:\ Users \ <用户名>`,因此配置文件位于`C:\ Users \ <用户名> \。ssh \ config`。 (4认同)