linux – 尝试SSH时设备的ioctl不合适

linux – 尝试SSH时设备的ioctl不合适,第1张

概述我正在尝试SSH几台服务器并尝试获取每台服务器的sudo -l输出. 下面是我正在执行的脚本 #!/bin/bashserverlist="/tmp/servers"while IFS=, read -r server netgroup username userdo ssh -tt -q root@$server sudo -U $username -l < /dev/n 我正在尝试SSH几台服务器并尝试获取每台服务器的sudo -l输出.

下面是我正在执行的脚本

#!/bin/bashserverList="/tmp/servers"while IFS=,read -r server netgroup username userdo        ssh -tt -q root@$server sudo -U $username -l < /dev/nulldone < "$serverList"

我在此脚本中发现-tt选项是导致此错误的原因.有什么想法吗?

此外,我已经注意到,当我执行以下命令仅为1服务器时,我没有看到此错误.

ssh -tt -q root @ myserver sudo -U cham01 -l

以下是我得到的完整错误消息:
tcgetattr:设备不适当的ioctl

解决方法 tcgetattr:设备的不适当的ioctl通常意味着某些程序尝试进​​行终端控制 *** 作,但其标准I / O流未连接到终端. (我知道这是因为 tcgetattr是执行终端控制 *** 作的C库函数的名称.)

现在,ssh的-tt选项的重点是保证远程主机上运行的程序连接到终端,并且stty打印出38400波特的速度; line = 0; -brkint -imaxbel演示了它.这是我在服务器上运行这些命令时得到的结果:

$ssh myserver stty < /dev/nullstty: 'standard input': Inappropriate ioctl for device$ssh -tt myserver stty < /dev/nullspeed 38400 baud; line = 0;-brkint -imaxbelConnection to myserver closed.

但你得到的是

$ssh -tt yourserver stty < /dev/nulltcsetattr: Inappropriate ioctl for devicespeed 38400 baud; line = 0;-brkint -imaxbel

tcsetattr错误不是来自stty.首先尝试做一些与终端相关的事情并失败,然后stty成功运行.
这表明你的shell启动脚本中存在一个错误,它在执行“非交互式”运行时不合适,导致即使运行连接到终端的命令也会出现此错误.我无法帮助你,但也许this old answer about a similar problem提供了一些线索.

总结

以上是内存溢出为你收集整理的linux – 尝试SSH时设备的ioctl不合适全部内容,希望文章能够帮你解决linux – 尝试SSH时设备的ioctl不合适所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1023696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存