Python SFTP:连接中断时获取通知

Python SFTP: Get Notification when Connection breaks

如果与服务器的连接由于某种原因中断,我收到一条文本或其他内容,是否有可能,所以我知道该错误与服务器有关?

import paramiko
import time

def connSFTP(ssh_key_filepath,host,user):
    #Fehleroptionen 1. Pfad zum SSH-KeyError
                        #-SSH-Key vorhanden?
                    #2.Host und/oder Username ist falsch

    k = paramiko.RSAKey.from_private_key_file(ssh_key_filepath) #SSH KEY
    c = paramiko.SSHClient()
    c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    c.connect( hostname = host, username = user , pkey = k )
    sftp = c.open_sftp()

    return sftp

def main():
    ssh_key_filepath = '/home/dtv/.ssh/id_rsa'
    hostname = 'HostAdress'
    username = 'user'
    sftp = connSFTP(ssh_key_filepath,hostname,username)
    print('Connected')

    time.sleep(30)

    #sftp.close()

if __name__ == '__main__':
    main()

我内置了一个睡眠,所以我可以杀死连接的过程并模拟连接丢失的时间。

您应该对以下内容使用异常处理:

提出: BadHostKeyException – 如果无法验证服务器的主机密钥

提出: AuthenticationException – 如果身份验证失败

提出: SSHException – 如果连接或建立 SSH 会话时出现任何其他错误

提出: socket.error – 如果连接时发生套接字错误

Paramiko api 文档 link:http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.connect