SSH子系统上的termios ioctl错误

时间:2018-06-21 08:36:47

标签: python openssh

我正在使用以下代码来读/写到stdin / stdout:

def _receive_message(self):
    msg = ''
    stdin_fd = sys.stdin.fileno()
    old = tty.tcgetattr(stdin_fd)
    tty.setcbreak(stdin_fd)

    while True:
        msg = msg + sys.stdin.read(1)
        if msg.endswith("]]>]]>"):
            return msg[:-6]
            sys.stdout.flush()
            tty.tcsetattr(stdin_fd, tty.TCSAFLUSH, old)
def send_message(self, msg):
    print(msg)

在2种模式下:

  1. ssh
  2. ssh -s netconf

都开始运行相同的python代码。 第一种方法可以正常工作 我收到第二个     由于异常而关闭连接(25,“设备的不适当的ioctl”) 在我阅读该错误时,是因为代码未在终端环境中运行,因此缺少终端设置。 如何使它们以相同的方式运行?

编辑: ssh连接与open ssh相连, sshd_config通过以下方式处理netconf子系统:     子系统netconf / bin / bash /home/user/.netconf_login .netconf_login与/home/user/.bash_login相同:

#!/bin/bash
PORT="${SSH_CLIENT##* }"
source /home/scripts/common_env_variables.sh

if [ "$PORT" -eq 830 ]; then
    sudo MIBDIRS=$MIBDIRS USER=$USER ROLE=$ROLE /usr/bin/python3.6 /home/user/netconf_server.py
fi
exit

0 个答案:

没有答案