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

Posted

技术标签:

【中文标题】如何将已生成的 SSH 密钥添加到 git bash?【英文标题】:How can I add an already generated SSH key to git bash? 【发布时间】:2020-01-12 22:50:06 【问题描述】:

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

【问题讨论】:

【参考方案1】:

在 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>

在“将 SSH 密钥添加到 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 时我都必须重复 @Phate,您是否设法了解如何永久添加此内容并在每次重新启动时重复此操作【参考方案2】:

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

host example.com
 HostName example.com
 IdentityFile ~/.ssh/id_rsa
 User git

别忘了设置权限chmod 400 ~/.ssh/id_rsa

【讨论】:

【参考方案3】:

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

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

... # StrictHostKeyChecking 询问 # 身份文件 ~/.ssh/id_rsa # 身份文件 ~/.ssh/id_dsa # 身份文件 ~/.ssh/id_ecdsa # 身份文件 ~/.ssh/id_ed25519 # 端口 22 ...

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

... # StrictHostKeyChecking 询问 IdentityFile "D:/keys 文件夹/myprivatekey" # 身份文件 ~/.ssh/id_rsa # 身份文件 ~/.ssh/id_dsa # 身份文件 ~/.ssh/id_ecdsa # 身份文件 ~/.ssh/id_ed25519 # 端口 22 ...

并且密钥已经添加。

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于如何将已生成的 SSH 密钥添加到 git bash?的主要内容,如果未能解决你的问题,请参考以下文章

生成SSH密钥添加到GitHub

以及git如何使用ssh密钥(将ssh密钥添加到g

如何使用ssh-keygen生成key

git如何生成ssh密钥 git生成配置ssh密钥key详细步骤

sourcetree gitlab 配置ssh

Git 使用笔记生成密钥对并添加SSH keys