我正在使用 paramiko ssh 进入远程机器,到目前为止这似乎工作正常
client.connect(hostname, port=ssh_port, username=username, key_filename=key_fname, password=password)
现在从远程机器我需要更深入,并使用
stdin, stdout, stderr = client.exec_command('telnet localhost %d'%port)
似乎给了我正确的句柄来开始使用stdin.write
我的问题是,当我完成后,我不知道如何正确退出 telnet。如果我手动操作,我可以进入 telnet,我看到: Escape character is '^]'.
我可以Ctrl+]
在键盘上使用,然后会弹出一个小菜单说
Console escape. Commands are:
l go to line mode
c go to character mode
z suspend telnet
e exit telnet
然后我可以按'e'退出(它会立即退出,不需要'enter'键)
但是当我尝试在我的脚本中执行此操作时,通过stdin.write('^]e')
、stdin.write('\^]e')
、stdin.write('\c]e')
、stdin.write('\M-\C-]e')
等。我一直看到stdout.read()
我的脚本已经按字面意思输入了这些字符。time.sleep(0.1)
在]
and之间放一点e
似乎没有帮助。
如何以编程方式输入该转义序列?