git - 使用带有 powershell 的 git 和带有密码的 ssh key

标签 git powershell github ssh

每当我在 powershell 中输入 git 命令时,我都会被问到:

Enter passphrase for key '/c/Users/***/.ssh/id_rsa'

此 key 是使用密码短语创建的:

ssh-keygen -t rsa -b 4096 -C "myemail@somewhere.com" 

我已将 ssh-agent 设置为在我的 powershell 启动时加载,并且设置了环境变量 SSH_AUTH_SOCKSSH_AGENT_PID。 连接github成功:

ssh -T git@github.com 回复:你好 tkvw!您已成功通过身份验证,但 GitHub 不提供 shell 访问。

这表明使用了 git url 而不是 https

git remote -v
origin  git@github.com:tkvw/pshazz.git (fetch)
origin  git@github.com:tkvw/pshazz.git (push)

这表明代理处于事件状态并且 key 已加载:

ssh-add -l
4096 b1:73:2a:11:....63:e8:2a:34 /c/Users/***/.ssh/id_rsa (RSA)

但是调用一个git操作:

git fetch 
Enter passphrase for key '/c/Users/***/.ssh/id_rsa':

我没有想法了。我不想使用 git bash 或其他东西,我喜欢它在 powershell 中工作。

最佳答案

这些都不适合我。此页面上的解决方案确实如此:https://gist.github.com/danieldogeanu/16c61e9b80345c5837b9e5045a701c99

这里是:

您不应使用 Git for Windows 附带的 Open SSH 客户端。相反,Windows 10 有自己的与系统集成的 Open SSH 实现。要实现这一点:

  1. 启动 ssh-agent来自 Windows 服务:
  • 输入 ServicesStart MenuWin+R然后输入 services.msc启动服务窗口;
  • 找到 OpenSSH Authentication Agent在列表中并双击它;
  • OpenSSH Authentication Agent Properties在出现的窗口中,选择 Automatic来自 Startup type:下 pull 并单击 Start来自 Service status: .确保它现在显示 Service status: Running .
  1. 通过在 Powershell 中发出以下命令,将 Git 配置为使用 OpenSSH 的 Windows 10 实现:git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe ;

  2. 通过编辑 config 将 SSH 配置为在启动时自动将 key 添加到代理文件位于 C:\Users\%YOUR_USERNAME%\.ssh\config , 并添加以下行:

Host *
    AddKeysToAgent yes
    IdentitiesOnly yes

如果您使用自定义名称或多个 SSH key 生成 SSH key ,您还可以添加以下行:

Host github.com
    HostName github.com
    User your_user_name
    IdentityFile ~/.ssh/your_file_name
  1. 将您的 SSH key 添加到 ssh-agent通过发布 ssh-add命令并输入您的密码:
ssh-add $HOME/.ssh/your_file_name
  1. 完成!现在,如有必要,请重新启动您的 Powershell 甚至 Windows。

关于git - 使用带有 powershell 的 git 和带有密码的 ssh key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48843643/

相关文章:

git - 分布式版本控制 "killer applications"

git - 我如何知道 git 存储库的深度?

node.js - npm 从私有(private)注册表安装,回退到 git 存储库 URL

python - Heroku:应用程序与 buildpack 不兼容:

powershell - 无法通过任务计划程序恢复工作流程

powershell - 逐行处理HereString

powershell - Powershell SCCM客户端应用程序安装

git - 如何找到 Github 文件的 SHA blob

git - 我怎样才能对公共(public) stash 一些文件,同时在 Github 存储库中对它们进行版本控制

检测到 Android Studio 未注册的 VCS 根 - 空 'Project' 选项卡