每次设置新的台式机时,我都会忘记这些说明,因此在这里添加了另一个答案,因为我经常会偶然发现它!
适用于像我这样急躁的用户的快速步骤
- 启用
OpenSSH Authentication Agent
服务并使其自动启动。
- 使用
ssh-add
命令行将SSH密钥添加到代理。
- 测试git集成,如果仍然需要您的密码,请继续。
- 将环境变量添加
$ENV:GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exe
到您的会话中,或永久添加到您的用户环境中。
详细步骤:概述
Windows已经使用OpenSSH交付了一段时间。它包括ssh与Git一起工作所需的所有必要位,但是在100%无缝工作之前,它似乎仍需要一些TLC。从Windows版本10.0.18362.449开始,这是我一直成功执行的步骤(您可以通过打开cmd.exe shell并键入来查看Windows 10版本ver
)。
我在这里假设您已经设置了SSH密钥,并且位于 ~/.ssh/id_rsa
在Windows 10框中启用ssh-agent服务。
- 开始->键入“服务”,然后单击出现的“服务”应用程序。
OpenSSH Authentication Agent
在列表中找到服务。
- 右键单击该
OpenSSH Authentication Agent
服务,然后选择“属性”。
- 将更
Startup type:
改为Automatic
。
- 单击
Start
按钮将服务状态更改为Running
。
- 通过单击退出对话框
OK
,然后关闭“服务”应用程序。
将密钥添加到 ssh-agent
- 打开您喜欢的外壳程序(在此示例中,我将使用Windows Powershell,也适用于Powershell Core)。
- 将SSH密钥添加到
ssh-agent
:(ssh-add
如果密钥与默认密钥不同,则可以将密钥的路径添加为第一个参数)。
- 如果/在提示时输入密码,请输入密码。
尝试Git + SSH
- 打开您的外壳程序(同样,我正在使用Powershell)并克隆一个仓库。
git clone git@github.com:octocat/Spoon-Knife
- 如果看到此提示,请继续进行下一部分:
Enter passphrase for key '/c/Users/your_user_name/.ssh/id_rsa':
设置GIT_SSH
环境变量
在任何会话中,您都可以简单地设置此环境变量,并且密码短语的提示将停止出现,并且ssh将ssh-agent
代表您使用。或者,您可以将密码短语永久设置到用户的环境中。
GIT_SSH
仅在当前外壳中设置:
- 打开您的首选项。(对我来说是Powershell)
- 将环境变量GIT_SSH设置为适当的
ssh.exe
:$Env:GIT_SSH=$((Get-Command -Name ssh).Source)
- 重试上述“ 尝试Git + SSH”中的步骤。
GIT_SSH
永久设置
- 打开文件资源管理器。开始->键入“文件资源管理器”,然后在列表中单击它。
- 右键单击“此PC”,然后单击“属性”。
- 点击“高级系统设置”。
- 单击“环境变量...”按钮。
- 在“您的用户名的用户变量”下,点击新建...
- 将
Variable name:
字段设置为GIT_SSH
- 将
Variable value:
字段设置为path-to-ssh.exe(通常为C:\Windows\System32\OpenSSH\ssh.exe
)。
- 单击“确定”关闭“新用户变量”对话框。
- 单击“确定”关闭“环境变量”对话框。
- 重试上述“ 尝试Git + SSH”中的步骤。
请注意,随着Windows 10的进展以及我所了解的更多,这可能会随着新的步骤/过程而改变。我将尝试保持此更新,希望在评论中提供反馈。