有时会出现 ssh-askpass 错误

有时会出现 ssh-askpass 错误

当我 ssh 到另一台主机hosta,然后连接到另一台主机时hostb,一切正常。两台主机目前都需要密码。

但是,当我尝试快捷方式此中间主机并将下一个 ssh 作为参数时,我得到了经常被提及错误:

$ ssh -X hosta ssh1 -X -1 login@hostb
Pseudo-terminal will not be allocated because stdin is not a terminal.
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Permission denied.

这一切似乎与进一步传递的环境变量有关。

这里的 ssh 期望什么?我该如何修复?

并且,我已经将hostb添加到hosta上的已知主机中。

答案1

根据man ssh

 -t      Force pseudo-terminal allocation.  This can be used to execute
         arbitrary screen-based programs on a remote machine, which can be
         very useful, e.g. when implementing menu services.  Multiple -t
         options force tty allocation, even if ssh has no local tty.

由于您正在运行多个 ssh 会话,因此您将使用多个-t。它们可以通过执行 来缩短ssh -tt。然后,该命令将如下所示,以强制使用伪 tty,以便您可以输入密码并查看连接上的提示。

ssh -tt -X hosta ssh1 -X -1 login@hostb

希望这可以帮助!

答案2

解决方案:

我没有直接执行远程命令,而是xterm -e在前面添加了一个。这样看来,正确的变量就在这里,而且第二个提示也起作用了。

相关内容