Paramiko を使用して、リモートの Cisco ルーターおよびスイッチに接続しています。これらのデバイスに接続する場合、「構成」モードに入るときにエコーをオフにできるようにしたいと考えています。そうすれば、リモート システムにコマンドを発行しても、コマンドが戻ってくるのを回避できます (したがって、エラー メッセージを探すことだけに集中できます)。
次のコマンドを実行して、Cisco デバイスでシェルを取得しています。
self.chan = self.transport.open_session()
self.chan.get_pty()
self.chan.invoke_shell()
ここで、pty の paramiko のファイル記述子を取得して、次のようなものを発行できるようにしたいと考えています。
fd = self.chan.fileno()
old = termios.tcgetattr(fd)
old[3] = old[3] | termios.ECHO
termios.tcsetattr(fd, termios.TCSADRAIN, old)
ただし、termiosは、chan.fileno() によって返されるファイル記述子でチョークします。
私が見たエコーをオフにするためのほとんどの提案では、リモート ボックスで「stty -echo」などの bash コマンドを発行する必要がありますが、Cisco ルーターは bash を実行していません。