私は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)
]
e
プログラムでそのエスケープシーケンスを入力するにはどうすればよいですか?