私はSSHChannelを "固定" SSHConnectionで使用します。時には、以前に閉じられたlocalChannelが使用されようとし、localChannelがSSHConnection.channels []にないためにKeyErrorが発生することがあります。ここでtwisted(17.5.0)以前に閉じたチャネル(ssh_CHANNEL_OPEN_CONFIRMATION)を使用したSSH接続
は、いくつかのログの抜粋です:
2017-07-05 07:54:50-0500 [-] openChannel localChannelID=2
2017-07-05 07:54:50-0500 [-] opening channel 2 with 65536 32768
2017-07-05 07:54:50-0500 [SSHChannel session (2) on SSHService 'ssh-connection' on ClientTransport,client] sending close 2
2017-07-05 07:54:50-0500 [SSHService 'ssh-connection' on ClientTransport,client] channelClosed id=2
は、だから今、チャネル2が閉じられています。私は接続でタイマーを持っていますが、私は使用する前に、これらをリセットすることを
2017-07-05 08:54:55-0500 [-] openChannel localChannelID=2
2017-07-05 08:54:55-0500 [-] opening channel 2 with 65536 32768
2017-07-05 08:54:55-0500 [SSHService 'ssh-connection' on ClientTransport,client] Unhandled Error Traceback (most recent call last):
<snipped irrelevant>
File "/usr/local/lib/python2.7/dist-packages/twisted/conch/ssh/connection.py", line 180, in ssh_CHANNEL_OPEN_CONFIRMATION channel = self.channels[localChannel]
exceptions.KeyError: 2
注:その後、(いくつかの新しいチャネルの後に)、私はこれを参照してください。
私は迷子になり、なぜ「ほとんどの時間」機能するのかを判断できませんが、ランダムに失敗します。どのように目立つエラーなしで開くように見えるので、私はどのようにして防ぐためにテストすることができます。