3

一些事实:

  • 我在 Windows 10 上
  • 我正在将 Power Shell 与 PoshGit 一起使用(我不想使用 cygwin bash shell 或其任何衍生物)
  • 我的存储库都是git@...,即它们不使用 https 遥控器
  • 当我启动一个新的 shell 会话时,如果尚未运行,ssh-agent 会启动并提示我输入密码,然后在后续会话中保持常驻
  • 我已经确认 ssh-agent 正在后台运行
  • 我的 id_rsa 文件存在于已保存身份列表 ( ssh-add -l) 中,这是连接到 github 存储库时提示我输入密码的密钥文件
  • 我也尝试过github 的帮助页面建议,特别是:git config --global credential.helper wincred- 它没有做任何事情。

我能找到的任何教程或建议都无法阻止 ssh 在每次推/拉/等时询问我的密码。

任何帮助,将不胜感激。

编辑

对于上下文,Scott Haack 关于这应该如何工作的旧文章(虽然显然不适合我): http ://haacked.com/archive/2011/12/19/get-git-for-windows.aspx/

编辑

ssh -vvvT git@github.com verify生成这个(相关片段):

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007                 
debug1: Reading configuration data /etc/ssh/ssh_config    
debug2: ssh_connect: needpriv 0                           
debug1: Connecting to github.com [192.30.252.130] port 22.
debug1: Connection established.                           
debug1: identity file /c/Users/xxxxx/.ssh/identity type -1
debug3: Not a RSA1 key file /c/Users/xxxxx/.ssh/id_rsa.   
debug2: key_type_from_name: unknown key type '-----BEGIN' 
debug3: key_read: missing keytype                         
debug2: key_type_from_name: unknown key type 'Proc-Type:' 
debug3: key_read: missing keytype                         
debug2: key_type_from_name: unknown key type 'DEK-Info:'  

我删除并读取了我的密钥文件,并提示输入密码:

D:\> ssh-add -D 
All identities removed.
D:\> ssh-add ~/.ssh/id_rsa
Enter passphrase for /c/Users/xxxxx/.ssh/id_rsa:
Identity added: /c/Users/xxxxx/.ssh/id_rsa (/c/Users/xxxxx/.ssh/id_rsa)
D:\> ssh-add -l 
2048 05:d5:8f:f8:e5:41:66:90:4c:a1:03:93:9d:e5:18:10 /c/Users/xxxxx/.ssh/id_rsa (RSA)

私钥文件看起来像这样(显然,删除了私人细节):

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,xxxxxxxxxxxxxxxx

............etc.==
-----END RSA PRIVATE KEY-----

不知道为什么它以一种方式添加它,然后当它试图读回它时会感到困惑。

编辑

根据评论和接受的答案,我的 PATH 指向一个非常过时的 bin 文件夹,其中包含我正在使用的 ssh-agent 和 ssh-add(更不用说 keygen)。解决这个问题,生成一个新的密钥,并将 PATH 指向正​​确的、更新的 git bin 文件夹已经解决了这个问题。

4

1 回答 1

1

一些指南指出了真正旧版本的 openssh(是的,当前版本是 7.1p1):

OpenSSH_4.6p1,OpenSSL 0.9.8e 2007 年 2 月 23 日

而且密钥看起来也很古老(我希望没有人在生产中使用 DES):

DEK-信息:DES-EDE3-CBC,xxxxxxxxxxxxxxxxxx

确保您的 PATH 中有更新的内容。

于 2016-02-26T08:06:38.760 回答