如何在窗口上运行 ssh-add?

我正在跟踪 # 335部署到 VPS,在本期节目接近尾声时,我们需要运行 ssh-add来让服务器访问 github repo。

问题是如何在 Windows 中运行它? 需要安装什么?

我知道要运行 ssh访问远程服务器,我可以使用 Putty。但是这个命令需要在本地运行,我知道如何使用 Putty来做到这一点。

370888 次浏览

可以安装 适用于 Windows 的 Git,然后运行 ssh-add:

步骤3: 将密钥添加到 ssh-agent

要将 SSH-agent 程序配置为使用 SSH 密钥:

如果安装了 GitHub for Windows,则可以使用它来克隆存储库,而不用处理 SSH 密钥。它还附带了 Git Bash 工具,这是在 Windows 上运行 Git 命令的首选方式。

  1. 确保启用 ssh-agent:

    • 如果您正在使用 Git Bash,请打开 ssh-agent:

      # start the ssh-agent in the background
      ssh-agent -s
      # Agent pid 59566
      
    • If you are using another terminal prompt, such as msysgit, turn on ssh-agent:

      # start the ssh-agent in the background
      eval $(ssh-agent -s)
      # Agent pid 59566
      
  2. Add your SSH key to the ssh-agent:

    ssh-add ~/.ssh/id_rsa
    

为了在 Windows 上运行 ssh-add,可以使用 choco install git安装 git。一旦将 C:\Program Files\Git\usr\bin添加为 PATH 变量并重新启动命令提示符,就可以识别 ssh-add命令:

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>

使用 git 的 start-ssh-agent 的原始答案

确保已经安装了 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 的安装。

  1. 从开始菜单打开 Manage optional features,并确保在列表中有 Open SSH Client。如果没有,您应该可以添加它。

  2. 从开始菜单打开 Services

  3. 向下滚动到 OpenSSH Authentication Agent > 右键单击 > properties

  4. 将启动类型从“禁用”更改为其他3个选项中的任何一个。我已将启动类型设置为 Automatic (Delayed Start)

  5. 打开 cmd 并键入 where ssh以确认最上面列出的路径位于 System32中。我的是安装在 C:\Windows\System32\OpenSSH\ssh.exe。如果它不在列表中,您可能需要关闭并重新打开 cmd。

完成这些步骤之后,ssh-agent、 ssh-add 和所有其他 ssh 命令现在应该可以从 cmd 工作了。要启动代理,只需键入 ssh-agent

  1. 可选步骤/故障排除 : 如果使用 git,应该将 GIT_SSH环境变量设置为之前运行的 where ssh的输出(例如 C:\Windows\System32\OpenSSH\ssh.exe)。这是为了防止您正在使用的 ssh 版本(以及您的键是用来添加/生成的)与 git 内部使用的版本之间的不一致。这应该可以避免类似的问题

这个解决方案的一些好处:

  • 您不需要每次重新启动计算机时都启动 ssh-agent
  • 您添加的标识(使用 ssh-add)将在重新启动后自动添加。(这对我来说是可行的,但是您可能需要在您的 c: Users User 中使用一个配置文件。Ssh 文件夹)
  • 你不需要饭桶!
  • 您可以向代理注册任何 rsa 私钥。另一个解决方案将只提取一个名为 id_rsa的密钥

希望这个能帮上忙

如果您试图为使用 ssh 的 git 设置一个密钥,那么总是有一个为标识文件添加配置的选项。

vi ~/.ssh/config


Host example.com
IdentityFile ~/.ssh/example_key

Git GUI for Windows 有一个基于窗口的应用程序,允许你粘贴 ssh 键和 repo url 等的位置:

Https://gitforwindows.org/

我以前也遇到过类似的情况。在命令提示符中,键入“ start-ssh-agent”,然后瞧!将启动 ssh-agent。如果它要求你输入密码,请输入。

如果您没有使用 GitBash-您需要使用以下命令启动 ssh-agent

start-ssh-agent.cmd

如果没有设置 ssh 代理,可以将 PowerShell 作为管理员打开,并将其设置为手动模式

Get-Service -Name ssh-agent | Set-Service -StartupType Manual
eval "$(ssh-agent -s)"


ssh-add C:/Users/Dell/.ssh/gitlab (your path)


git clone repo_link

下面的解决方案解决了我的问题。请务必在管理模式下运行您的 Powershell 并执行以下操作:

  1. 检查 ssh-agent 的当前状态: “ Get-Service | select-property name,starttype”—— > 应该禁用

  2. 设置新类型: “ Set-Service-Name ssh-agent-StartupType Manual”

  3. 启动: “ Start-Service ssh-agent”

  4. 像前面一样简单地添加密钥: “ ssh-Add”(Eg.ssh-Add keyfile)

我找到了解决方案 给你:

这适用于 win7和 win10以及 cygwin ssh/git/github 上的普通 cmd:

c:\> type ssh-agent-start-cmd.cmd


@echo off
@ by github/moshahmed
if "%1" == "" (
echo "Usage: ssh-agent-cmd keyfile .. starts ssh-agent and load ~/.ssh/*keyfile*"
goto :eof
)


taskkill /f /im ssh-agent.exe
:: pskill ssh-agent 2> nul
for /f "tokens=1 delims=;" %%a in ('ssh-agent') do (
echo %%a | findstr /C:"SSH" 1>nul
if errorlevel 1 (
echo Ignore %%a
) else (
echo set %%a
set %%a
)
)
ssh-add ~/.ssh/*%1*
ssh-add -l

您应该启动 ssh 代理并使用推荐命令生成 ssh 密钥

ssh-keygen -t rsa -b 4096 -C "your email"

2021答案

微软近年来改进了对 ssh-key 的支持。现在 Windows 中包含了一个全功能的“服务”。来自 Windows Server < em > (也适用于其他版本) 文档:

在(管理) 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

需要代理套接字路径的程序应该使用: \\.\pipe\openssh-ssh-agent

我刚刚用 Github 设置了 SSH 身份验证,只要用 Putty 安装的“ Pageant”就可以了。

您需要将盛会添加到您的 Windows 启动文件夹,以便它在 Windows 启动时启动(或者在您需要进行身份验证之前每次启动它)

这个 博客文章很好地解释了在 Windows 上使用 Putty 和 Pageant 配置 Github 需要做的所有事情。