ssh-keygen找不到ssh_askpass

时间:2018-08-15 21:49:05

标签: git ssh

我正在尝试为Windows上的Git生成SSH密钥(我刚刚安装了2.18.0),但是找不到名为ssh_askpass的东西:

d:\src\py\>ssh-keygen -b 4096 -C my.email@dot.com
Generating public/private rsa key pair.
Enter file in which to save the key (/d//.ssh/id_rsa): D:\.ssh\id_rsa_new
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
.
.pub.

ssh-keygen二进制文件是git附带的二进制文件,位于C:\ Program Files \ Git \ usr \ bin,但该目录中没有ssh_askpass文件。

我在哪里可以得到这个“ ssh_askpass”?找不到它的后果是什么?

2 个答案:

答案 0 :(得分:1)

this issue中一样,检查是否设置了环境变量DISPLAY=localhost:0.0

如果是这样,请通过以下方式取消设置:

set DISPLAY=

然后重试您的ssh-keygen命令。


还要确保进行测试,以尝试生成没有密码短语的密钥:

ssh-keygen -t rsa -P "" -b 4096 -C my.email@dot.com

最后,检查您的%PATH%并确保ssh-keygen是您正在考虑的对象(来自Git安装)

where ssh-keygen

有时候,它可能会被Cygwin的一个阴影所掩盖。

答案 1 :(得分:1)

回答我自己的问题,以使其他可能迷失于此的人受益,因为我实际上已经了解了要执行的操作:此命令是在emacs子外壳中键入的,该子外壳不具有完整的终端功能(被认为是“哑”终端)。

然后ssh-keygen认为它不在终端内运行,因此无法读取密码,而是尝试运行X Window程序,但由于这是Windows而失败。

解决方案是在Git Bash内或Windows命令行工具中运行ssh-keygen(或ssh-add),它将在其中提示输入密码并按预期工作。