如何将已生成的 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.
上获取和使用它
我在 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.