执行远程命令时出现SSH错误:“ stdin:不是tty”

我正在尝试使用ssh连接到一台计算机,然后使用ssh连接到另一台计算机。但是得到这个错误:

ssh user@computerone.com 'ssh otheruser@computertwo.com'

stdin: is not a tty

回答:

登录到外壳程序时,远程主机假定连接是由人类用户完成的。因此,可以合理地期望他们可以控制客户端上的 标准

。也就是说,用户正在通过键盘在终端上进行输入。如果远程主机检测到用户不是人类用户(因为输入的不是终端-

tty,而是另一个进程),它可能会警告用户有关此意外情况。


讨论过的不当行为以及如何避免它的演示(man ssh并寻找-t以获得更详尽的解释)。

$ ssh -t genja.org 'ssh raptor.lan hostname\; uptime'

host: genja.lan

raptor

21:17:27 up 3 days, 15 min, 1 user, load average: 0.00, 0.00, 0.00

Connection to genja.org closed.

$ ssh genja.org uptime

host: genja.lan

21:17:43 up 12 days, 17:40, 1 user, load average: 0.30, 0.08, 0.02

…和错误:

$ ssh  genja.org 'ssh raptor.lan hostname\; uptime'

host: genja.lan

Permission denied (publickey,keyboard-interactive).


您可能要建立一条隧道:

ssh -L 4444:raptor.lan:22 genja.org

然后,在另一个终端上:

ssh -p 4444 localhost will give you a conenction straight to "raptor.lan"

如果未在远端配置DNS别名,请使用IP地址,例如192.168.0.11。

以上是 执行远程命令时出现SSH错误:“ stdin:不是tty” 的全部内容, 来源链接: utcz.com/qa/432131.html

回到顶部