如何解决Python SFTP:连接中断时获取通知
如果与服务器的连接由于某种原因我收到文本或其他原因而中断,那么我知道错误与服务器有关吗?
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 文档链接:http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.connect
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。