Paramiko:如何在断开连接后重新启动ssh连接(错误:套接字已关闭)?

时间:2017-06-23 11:14:18

标签: python ssh paramiko

连接中断后是否有办法重新启动ssh连接?当Paramiko没有得到连接设备的任何响应时,它似乎有一个超时。断开连接后,如果我尝试通过ssh连接执行某些操作,则会收到错误“Socket is closed”。我知道在ssh.connect()中有一个超时选项,但我已经尝试将其设置为99999和None,但这不起作用。 顺便说一句,程序不断尝试通过ssh.write()发送输入。如果这不起作用,它会等待2秒钟并再次尝试。

1 个答案:

答案 0 :(得分: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()