有没有可能,如果由于某种原因与服务器的连接中断,我会收到一条文本或其他信息,这样我就知道这个错误与服务器有关?
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()我内置了一个睡眠,所以我可以终止连接的过程,并模拟在时间上丢失的连接。
发布于 2021-06-30 21:46:23
您应该对以下内容使用异常处理:
如果无法验证服务器的主机密钥,则引发: BadHostKeyException
如果身份验证失败,则引发: AuthenticationException
如果连接或建立SSHException会话时出现任何其他错误
如果连接时发生套接字错误,则引发: socket.error
Paramiko api文档链接:http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.connect
https://stackoverflow.com/questions/68195360
复制相似问题