我正在关注#335 Deploying to a VPS ,并且在剧集结束时,我们需要运行ssh-add
以授予服务器访问github repo的权限。
问题是如何在Windows中运行它?需要安装什么?
我知道要运行ssh
来访问远程服务器,我可以使用Putty
。但是这个命令需要在本地运行,我知道如何使用Putty
来执行此操作。
答案 0 :(得分:52)
原始回答
确保已安装Git并在PATH中包含git的cmd
文件夹。例如,在我的计算机上,git的cmd文件夹的路径为C:\Program Files\Git\cmd
确保您的id_rsa
文件位于c:\users\yourusername\.ssh
如果尚未重启命令提示符,请运行start-ssh-agent
。它会找到您的id_rsa
并提示您输入密码
更新2019年 - 如果您使用的是Windows 10,这是一个更好的解决方案: OpenSSH作为Windows 10的一部分提供,在我看来,这使得使用cmd / powershell的SSH变得更加容易。与我之前的解决方案不同,它也不依赖于安装git。
从开始菜单中打开Manage optional features
,确保列表中有Open SSH Client
。如果没有,您应该可以添加它。
从开始菜单
Services
向下滚动到OpenSSH Authentication Agent
>右键单击>特性
将“启动”类型从“禁用”更改为任何其他3个选项。我已将我的设置为Automatic (Delayed Start)
打开cmd并键入where ssh
以确认列出的顶部路径位于System32中。我的安装在C:\Windows\System32\OpenSSH\ssh.exe
。如果它不在列表中,您可能需要关闭并重新打开cmd。
一旦您按照这些步骤操作,ssh-agent,ssh-add和所有其他ssh命令现在应该可以在cmd中运行。要启动代理,只需键入ssh-agent
。
GIT_SSH
环境变量设置为之前运行的where ssh
输出(例如C:\Windows\System32\OpenSSH\ssh.exe
})。这是为了阻止你正在使用的ssh版本(以及你的密钥被添加/生成)和git在内部使用的版本之间的不一致。 This should prevent issues that are similar to this 关于此解决方案的一些好处:
id_rsa
希望这有帮助
答案 1 :(得分:33)
可以安装Git for Windows,然后运行ssh-add
:
Step 3: Add your key to the ssh-agent
配置ssh-agent程序以使用SSH密钥:
如果安装了GitHub for Windows,则可以使用它来克隆存储库而不处理SSH密钥。它还附带了Git Bash工具,这是在Windows上运行git命令的首选方法。
确保已启用ssh-agent:
如果您使用的是Git Bash,请启用ssh-agent:
# start the ssh-agent in the background ssh-agent -s # Agent pid 59566
如果您正在使用其他终端提示,例如msysgit,请启用ssh-agent:
# start the ssh-agent in the background eval $(ssh-agent -s) # Agent pid 59566
- 醇>
将SSH密钥添加到ssh-agent:
ssh-add ~/.ssh/id_rsa
答案 2 :(得分:10)
如果您不使用GitBash,则需要使用此命令启动ssh-agent
start-ssh-agent.cmd
这被残酷地掩埋在评论中,很难找到。这应该被接受。
如果未设置ssh代理,则可以以管理员身份打开PowerShell并将其设置为手动模式
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
答案 3 :(得分:4)
要在Windows上运行ssh-add
,可以使用choco install git
安装git。一旦ssh-add
被添加为PATH变量并且命令提示符已重新启动,就会识别C:\Program Files\Git\usr\bin
命令:
C:\Users\user\Desktop\repository>ssh-add .ssh/id_rsa
Enter passphrase for .ssh/id_rsa:
Identity added: .ssh/id_rsa (.ssh/id_rsa)
C:\Users\user\Desktop\repository>
答案 4 :(得分:4)
我以前也有类似情况。在命令提示符下,键入“ start-ssh-agent”,瞧! ssh-agent将启动。如果要求输入密码,则输入密码。
答案 5 :(得分:2)
微软近年来改进了 ssh-key 支持。现在有一个功能齐全的“服务”可以运行。
来自https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement
在(管理员)Powershell 中:
# By default the ssh-agent service is disabled.
Get-Service -Name ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
然后从任何用户 shell:
ssh-add path/to/.ssh/id_rsa
答案 6 :(得分:1)
Windows的Git GUI有一个基于窗口的应用程序,允许您粘贴ssh密钥和回购URL等的位置:
答案 7 :(得分:1)
eval "$(ssh-agent -s)"
ssh-add C:/Users/Dell/.ssh/gitlab (your path)
git clone repo_link
答案 8 :(得分:0)
如果您尝试设置将git与ssh结合使用的密钥,则始终可以选择为身份文件添加配置。
vi ~/.ssh/config
Host example.com
IdentityFile ~/.ssh/example_key
答案 9 :(得分:0)
以下解决方案解决了我的问题。请务必在管理员模式下运行您的 powershell 并执行以下操作:
检查ssh-agent的当前状态:"Get-Service | select -property name,starttype" --> 应该是Disabled
设置新类型:“Set-Service -Name ssh-agent -StartupType Manual”
启动它:“Start-Service ssh-agent”
像以前一样简单地添加您的密钥:“ssh-add”(例如 ssh-add 密钥文件)
我找到了解决方案 here:
答案 10 :(得分:0)
您应该启动 ssh 代理并使用推荐命令 "ssh-keygen -t rsa -b 4096 - C "your email" 生成 ssh 密钥
答案 11 :(得分:0)
我刚刚在 Github 上设置了 SSH 身份验证。使用Putty安装的“Pageant”即可。
您需要将选美添加到您的 Windows 启动文件夹,以便它在 Windows 启动时启动(或每次在您需要进行身份验证之前启动它)
此 blog post 很好地解释了使用 Putty 和 Pageant 在 Windows 上配置 Github 所需执行的所有操作。