Does Paramiko Close Ssh Connection On A Non-paramiko Exception
I'm debugging some code, which is going to result in me constantly logging in / out of some external sftp servers. Does anyone know if paramiko automatically closes a ssh / sftp se
Solution 1:
SSHClient() can be used as a context manager, so you can do
withSSHClient() as ssh:
ssh.connect(...)
ssh.exec_command(...)
and not close manually.
Solution 2:
No, paramiko will not automatically close the ssh / sftp session. It doesn't matter if the exception was generated by paramiko code or otherwise; there is nothing in the paramiko code that catches any exceptions and automatically closes them, so you have to do it yourself.
You can ensure that it gets closed by wrapping it in a try/finally block like so:
client = None
try:
client = SSHClient()
client.load_system_host_keys()
client.connect('ssh.example.com')
stdin, stdout, stderr = client.exec_command('ls -l')
finally:
if client:
client.close()
Post a Comment for "Does Paramiko Close Ssh Connection On A Non-paramiko Exception"