Paras vastaus
Voit käyttää Paramikoa tähän. Alla oleva koodi on yksinkertainen SFTPConnection-luokka, joka käyttää Paramiko-moduulia 2-vuotiaasta listastani (sen pitäisi toimia, jos ei, sen pitäisi antaa sinulle käsitys paramikon käytöstä).
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
Vastaa
Paramiko – ottaa käyttöön SSH2-protokollan turvallisten yhteyksien löytämiseksi etäkoneisiin.
Pexpect – kutee lapsisovellus ja hallitse sitä kuin ihminen kirjoittaisi komentoja.
aliprosessi – on tavallinen kirjastomoduuli, joten se ”on saatavilla python-asennuksen yhteydessä. Mutta sillä on vaikeasti käytetty maine, koska sen api ei ole intuitiivinen.
Linkit:
python-kirjastot ssh-käsittelyyn
SSH-ohjelmointi Paramikon kanssa | Täysin erilainen
Ainoa yksinkertainen tapa tehdä SSH Pythonissa on käyttää aliprosessia + OpenSSH .. .