2017-06-23 59 views
0

接続が中断した後にssh接続を再確認する方法はありますか? Paramikoは、接続されたデバイスから何の応答も得られないときにタイムアウトしているようです。切断後、ssh接続で何かを実行しようとすると、「ソケットが閉じています」というエラーが表示されます。私はssh.connect()でタイムアウトのオプションがあることを知っていますが、すでに99999とNoneに設定しようとしましたが、うまくいきませんでした。 Btw、プログラムはssh.write()で入力を継続的に送信しようとします。それでも問題が解決しない場合は、2秒待ってから再試行してください。Paramiko:切断後にssh接続を再確認する方法(エラー:ソケットが閉じられています)?

答えて

1

これを試すと、ssh接続に書き込み、接続がタイムアウトすると再接続します。それを使用するに

def writeOrReconnect(towrite) 
    try: 
     return ssh.write(towrite) 
    except socket.error as e: 
     #re-connect here 
     return ssh.write(towrite) 

..

writeOrReconnect('sudo apt-get install ufw') #or whatever you put inside ssh.write() 
関連する問題