CreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory Host key verification failed, jupyter notebook on remote server

CreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory Host key verification failed, jupyter notebook on remote server

所以我正在按照 tutorial 连接到远程服务器上 运行 的 jupyter notebook,这样我就可以在本地 windows 机器上访问它。

这些是我遵循的步骤。

在我的远程服务器上:

jupyter notebook --no-browser --port=8889

然后在我的本地机器上

ssh -N -f -L localhost:8888:localhost:8889 *******@**********.de.gyan.com

但是我收到一个错误

CreateProcessW failed error:2
ssh_askpass: posix_spawn: No such file or directory
Host key verification failed.

我该如何解决这个问题?或者有没有其他方法可以达到同样的效果?

DISPLAY=localhost:0.0 环境变量已设置。 Removing/Renaming 这个变量解决了这个问题。但我不知道为什么会引起问题?任何回答相同的答案都将被接受。

根据 openssh docs,通常会在命令行提示输入密码的 ssh 客户端会尝试显示一个 GUI 对话框供用户输入密码,如果 SSH_ASKPASSDISPLAY 环境变量已设置。

然而,在 windows 上,这还没有得到适当的支持,因为缺少所需的 ssh_askpass 二进制文件,也因为这看起来仍然非常面向 X11。

Git 对于 windows 但是似乎可以正常工作。

当然,如果您只是想在命令行中输入密码,请确保未设置变量。然而,根据您提供的信息,无法回答为什么首先设置变量。

如果因为要在 Windows10 中使用 VcXsrc 或另一个 X-Server 而需要设置 DISPLAY 变量,解决方法是将要连接的主机添加到 known_hosts文件。 这可以通过调用

来完成
ssh-keyscan -t rsa host.example.com | Out-File ~/.ssh/known_hosts -Append -Encoding ASCII;

您可以使用 POSIX shell 命令“env”显示“环境变量”的值。

或者您只需键入 echo $DISPLAYecho $SSH_ASKPASS。可能从 shell 到 shell 不等。

解决此问题的另一种方法是将 public RSA 密钥插入目标系统上的 .ssh/authorized_keys 文件中,但这可能只有在您将此系统的 ID 输入到您的首先是本地 known_hosts 文件,如上所述。

如何生成 RSA 密钥对:使用 ssh-keygen -t rsa ....

此致, Stefan B.

我相信您的 ssh 版本 <= 8.6.0-beta1。只需在 elevated powershell by

中更新到 8.6.0-beta1+ 版本即可使用
choco upgrade openssh

您可以通过

查看您的版本
choco list -lo openssh  # -lo: --localonly
openssh 8.6.0-beta1