我正在尝试为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”?找不到它的后果是什么?
答案 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),它将在其中提示输入密码并按预期工作。