Mejor respuesta
Puede usar Paramiko para esto. El siguiente código es una clase SFTPConnection simple usando el módulo Paramiko de mi esencia de 2 años (debería funcionar si no, entonces debería darte una idea sobre el uso de Paramiko).
import paramiko
import os
import subprocess
class SFTPConnection:
"""
Class for SFTP Connection using Paramiko
"""
def \_\_init\_\_(self):
paramiko.util.log\_to\_file("/tmp/paramiko.log")
self.host1 = "192.168.1.77"
self.port = 22
#self.path = os.path.join(os.environ["HOME"], ".ssh", "id\_dsa")
#self.key = paramiko.DSSKey.from\_private\_key\_file(self.path)
self.privatekeyfile = os.path.expanduser("~/.ssh/id\_rsa")
self.mykey = paramiko.RSAKey.from\_private\_key\_file(self.privatekeyfile)
self.username = "root"
def connection\_to\_77(self):
"""
SFTP connection to 192.168.1.77 server using root user
"""
transport = paramiko.Transport((self.host1, self.port))
transport.connect(username = self.username, pkey = self.mykey)
sftp = paramiko.SFTPClient.from\_transport(transport)
return sftp
Responder
Paramiko: implementa el protocolo SSH2 para conexiones seguras a máquinas remotas.
Pexpect: genera una aplicación secundaria y contrólala como si un humano estuviera escribiendo comandos.
subproceso – es un módulo de biblioteca estándar, por lo que estará disponible con la instalación de Python. Pero tiene la reputación de ser difícil de usar ya que su api no es intuitiva.
Enlaces de referencia:
bibliotecas de Python para el manejo de ssh
Programación SSH con Paramiko | Completamente diferente
Componentes principales de pexpect
La única forma sencilla de hacer SSH en Python hoy en día es usar subproceso + OpenSSH .. .