linux – 尝试SSH时设备的ioctl不合适
发布时间:2020-12-14 00:32:28 所属栏目:Linux 来源:网络整理
导读:我正在尝试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
我正在尝试SSH几台服务器并尝试获取每台服务器的sudo -l输出.
下面是我正在执行的脚本 #!/bin/bash serverlist="/tmp/servers" while IFS=,read -r server netgroup username user do ssh -tt -q root@$server sudo -U $username -l < /dev/null done < "$serverlist" 我在此脚本中发现-tt选项是导致此错误的原因.有什么想法吗? 此外,我已经注意到,当我执行以下命令仅为1服务器时,我没有看到此错误. ssh -tt -q root @ myserver sudo -U cham01 -l 以下是我得到的完整错误消息: 解决方法
tcgetattr:设备的不适当的ioctl通常意味着某些程序尝试进??行终端控制操作,但其标准I / O流未连接到终端. (我知道这是因为
tcgetattr 是执行终端控制操作的C库函数的名称.)
现在,ssh的-tt选项的重点是保证远程主机上运行的程序连接到终端,并且stty打印出38400波特的速度; line = 0; -brkint -imaxbel演示了它.这是我在服务器上运行这些命令时得到的结果: $ssh myserver stty < /dev/null stty: 'standard input': Inappropriate ioctl for device $ssh -tt myserver stty < /dev/null speed 38400 baud; line = 0; -brkint -imaxbel Connection to myserver closed. 但你得到的是 $ssh -tt yourserver stty < /dev/null tcsetattr: Inappropriate ioctl for device speed 38400 baud; line = 0; -brkint -imaxbel tcsetattr错误不是来自stty.首先尝试做一些与终端相关的事情并失败,然后stty成功运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |