如何在Windows上运行ssh-add?

cqc*_*991 43 windows ssh

我正在关注#335部署到VPS,并且在剧集结束时,我们需要运行ssh-add以授予服务器访问github repo的权限.

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

我知道要运行ssh以访问远程服务器,我可以使用Putty.但是这个命令需要在本地运行,我知道如何使用它Putty来执行此操作.

tam*_*rd2 96

原始答案

确保安装了Git并cmd在PATH中安装了git 文件夹.例如,在我的计算机上,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>右键单击>属性

  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文件夹中的配置文件)
  • 你不需要git!
  • 您可以将任何rsa私钥注册到代理.另一个解决方案只会选择一个名为的密钥id_rsa

希望这可以帮助

  • `启动SSH-agent`.经过一个小时的环顾四周,这就是我所需要的一切.谢谢! (16认同)
  • 对我来说,Windows 服务“OpenSSH 身份验证代理”被禁用,这有帮助,谢谢 (4认同)
  • 我认为 `start-ssh-agent` 确实适用于 PowerShell。但是,我以管理员身份运行 PowerShell,所以这可能是关键。 (2认同)

Cam*_*ind 95

2021年答案

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

启用ssh-agent服务

通过管理员 Powershell:

Set-Service   ssh-agent -StartupType Automatic
Start-Service ssh-agent
Run Code Online (Sandbox Code Playgroud)

或通过服务应用程序:

Windows 服务配置对话框显示 ssh-agent 设置为自动启动且当前正在运行

现在ssh-add有效

ssh-add path/to/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

套接字路径

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

  • 为了使 git 无密码工作,我还必须运行(以管理员身份): git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe (来源:https://interworks.com/blog/2021/ 09/15/设置-ssh-agent-in-windows-for-passwordless-git-authentication/) (5认同)

小智 53

可以安装Git for Windows并随后运行ssh-add:

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

要配置ssh-agent程序以使用SSH密钥:

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

  1. 确保启用了ssh-agent:

  2. 将SSH密钥添加到ssh-agent:

    ssh-add ~/.ssh/id_rsa
    
    Run Code Online (Sandbox Code Playgroud)

  • @BernhardDöbler `start-ssh-agent.cmd` 应该是正确的答案!太感谢了! (11认同)
  • 似乎对我有用:我称之为"D:\>"c:\ Program Files\Git\cmd\start-ssh-agent.cmd"`. (8认同)
  • 如何运行第一行`cd~/.ssh`?我们在windows中,不应该是'C:/'吗? (7认同)
  • eval:术语"eval"未被识别为cmdlet,函数,脚本文件或可操作程序的名称. (2认同)
  • 除了Git Bash之外,这个答案也完全是错误的,它的复制/粘贴内容也是如此。 (2认同)

Chr*_*zyn 24

如果您不使用 GitBash - 您需要使用此命令启动 ssh-agent

start-ssh-agent.cmd
Run Code Online (Sandbox Code Playgroud)

如果您的 ssh 代理未设置,您可以以管理员身份打开 PowerShell 并将其设置为手动模式

Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Run Code Online (Sandbox Code Playgroud)

  • 这是大约 5 年来投票最高的答案,哈哈... /sf/answers/2850436921/ 有时你必须按投票排序! (3认同)

Bri*_* Ng 12

如果您尝试设置密钥以将 git 与 ssh 一起使用,则始终可以选择为身份文件添加配置。

vi ~/.ssh/config

Host example.com
IdentityFile ~/.ssh/example_key
Run Code Online (Sandbox Code Playgroud)

  • 我在所有其他评论中都做了所有事情,但这最终使它对我有用。我用 github.com 替换了 example.com,因为我无法克隆或推送或任何东西(我收到 Git: Permission denied (publickey) 错误) (4认同)

小智 12

我以前也遇到过类似的情况。在命令提示符下,您输入“start-ssh-agent”,瞧!ssh-agent 将启动。如果它询问您,请输入密码。

  • “start-ssh-agent”未被识别为内部或外部命令 (2认同)

030*_*030 8

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

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> 
Run Code Online (Sandbox Code Playgroud)

  • 是的!对路径执行`C:\Program Files\Git\usr\bin` 终于修复了它!Everone 在 `\Git` 中处理各种其他文件夹,但不在 usr\bin 中 (2认同)

归档时间:

查看次数:

91649 次

最近记录:

6 年,1 月 前