与Python 3.0的SSH连接

Ste*_*ing 8 python ssh file

如何在Python 3.0中建立SSH连接?我想在远程计算机上保存文件,我在其中设置了无密码SSH.

Die*_*Epp 12

我建议调用ssh作为子进程.它可靠,便携.

import subprocess
proc = subprocess.Popen(['ssh', 'user@host', 'cat > %s' % filename],
                        stdin=subprocess.PIPE)
proc.communicate(file_contents)
if proc.retcode != 0:
    ...
Run Code Online (Sandbox Code Playgroud)

你不得不担心引用目标文件名.如果您想要更多灵活性,您甚至可以这样做:

import subprocess
import tarfile
import io
tardata = io.BytesIO()
tar = tarfile.open(mode='w:gz', fileobj=tardata)
... put stuff in tar ...
proc = subprocess.Popen(['ssh', 'user@host', 'tar xz'],
                        stdin=subprocess.PIPE)
proc.communicate(tardata.getvalue())
if proc.retcode != 0:
    ...
Run Code Online (Sandbox Code Playgroud)