如何将已生成的 SSH 密钥添加到 git bash?

How can I add an already generated SSH key to git bash?

我在 D:/keys folder 中保存了一个 SSH 密钥。我想将它添加到我的 git bash。我找到的所有教程都是如何使用 gitbash 生成 SSH 密钥并将其加载到 github/gitlab。我使用 puttygen 生成了我的 SSH 密钥。现在我想将它添加到我的 git bash 以便我可以从远程克隆一个存储库。我该怎么做?

我认为 gitbash 本身没有任何特定的配置。您必须将密钥放在默认位置 ~\.ssh/id_rsa,然后才会使用它。如果您需要将它放在其他地方,您可以使用与 Linux ~/.ssh/config

相同的配置文件来实现
host example.com
 HostName example.com
 IdentityFile ~/.ssh/id_rsa
 User git

不要忘记设置权限chmod 400 ~/.ssh/id_rsa

在 windows 上,您可能需要像这样启动 ssh 代理

# start the ssh-agent in the background
$ eval $(ssh-agent -s)
> Agent pid 59566

将您的 SSH 私钥添加到 ssh-agent。如果您使用不同的名称创建密钥,或者如果您要添加具有不同名称的现有密钥,请将命令中的 id_rsa 替换为您的私钥文件的名称。

$ ssh-add <path/to/key>

从 "Adding your SSH key to the ssh-agent" 下的此处获取此信息: https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent

假设您要导入到 git bash 的私钥文件是 D:/keys folder/myprivatekey 并且您的 Git 安装在 D:/Git 中(在哪个文件夹中你会看到二进制文件 git-bash.exe),打开文件 D:/Git/etc/ssh/ssh_config.

以下是此文件中的一些文本:

...
# StrictHostKeyChecking ask
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_ecdsa
# IdentityFile ~/.ssh/id_ed25519
# Port 22
...

只需添加一个新行并保存:

...
# StrictHostKeyChecking ask
IdentityFile "D:/keys folder/myprivatekey"
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_ecdsa
# IdentityFile ~/.ssh/id_ed25519
# Port 22
...

并且密钥已经添加。

我能够得到它,因此仅在使用 Auto-launching ssh-agent on Git for Windows 处的脚本启动后打开的第一个 window 上提示输入密码。但是,我确实发现,当我将它添加到 ~/.profile~/.bashrc 时它不起作用。我需要将它添加到 ~/.bash_profile,以便 Git Bash 在 Windows.

上获取和使用它