当前位置: 首页 > 面试题库 >

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

姬经义
2023-03-14
问题内容

我正在尝试使用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。



 类似资料:
  • 问题内容: 如何在远程Linux机器上执行命令/脚本?说我想从框a的框b开始服务tomcat。 问题答案: 我想这是最好的安全方式,例如: 必须根据您的特定需求(例如,仅绑定到ipv4)部署OPTIONS的地方,并且您的远程命令可能正在启动您的tomcat守护程序。 注意 : 如果不想在每次运行ssh时都提示您,也请查看ssh- agent,以及系统允许的情况。关键是…了解ssh密钥交换过程。请仔

  • 问题内容: 我试图通过这样的本地服务器上的ssh命令在远程linux服务器上执行命令: ssh myremoteserver’类型ttisql’ 其中ttisql是我的远程计算机路径上的可执行文件。 运行此命令的结果是: bash:第0行:类型:ttisql:未找到 当我只是先连接并执行以下操作: ssh myremoteserver 然后输入命令: [myuser @ myremoteserve

  • 我在执行命令时出错

  • 问题内容: 尝试构建时出现以下错误: Jenkins 2.7.1在Windows Server 2012 R2上运行(在Jenkins 2.7.4上发生了相同的错误)。我可以通过git命令行克隆仓库,没有任何问题。发生这种情况时,我可以在任务管理器屏幕快照中看到多个git进程树,如果我稍等片刻,我会在Jenkins中看到它。 问题答案: 罪魁祸首是Git插件。更新后开始工作。我正在使用2.5.3版

  • 问题内容: 在我的我确定,我可以在命令行后使用的功能: 使用此命令时,仅在远程主机上执行该命令。该命令在本地主机上执行。这是因为分号将两个不同的命令分开:命令和命令。 我尝试如下定义函数(注意单引号): 我试图将命令和命令放在一起,但是参数解析不取决于我给函数的内容。总是试图执行命令 在远程主机上。 如何正确定义,所以剧本正在改变进入目录后,在远程主机上执行,具有传递给参数的能力来? 问题答案:

  • 我有一个CircleCI配置,它的末尾有一个部署脚本。该命令应该SSH到服务器中,移动到目录并执行NPM脚本。看起来是这样的: 这将引发以下错误: 这表示服务器上没有安装NPM,但它安装了。为了测试这一点,如果我单独运行这些命令,它们就可以工作。 那么这里有什么问题?