使用密码在python中的SCP

Nho*_*ome 3 python scp

我一直在尝试使用密码将文件 scp 发送到远程计算机。我使用了这个代码:

import os
import scp
client = scp.Client(host="104.198.152.xxx", username="nxxx", password="xxxxxx")
client.transfer("script.py", "~/script.py")
Run Code Online (Sandbox Code Playgroud)

正如如何在 python 中 scp 中所建议的那样,但它输出:

File "script.py", line 5, in <module>
    client = scp.Client(host="104.198.152.153", username="nazarihome", password="mohMOH13579")
AttributeError: 'module' object has no attribute 'Client'
Run Code Online (Sandbox Code Playgroud)

我还尝试了人们建议的其他方法,但似乎它们都不起作用。有人有真正有效的建议吗?

ps 如果您的答案取决于密码,我必须使用密码而不是密钥。

Ale*_*lor 7

scp.pyGitHub的页面具有使用本身与下面的例子中的paramiko库处理SSL:

from paramiko import SSHClient
from scp import SCPClient

ssh = SSHClient()
ssh.load_system_host_keys()
ssh.connect(hostname='ip', 
            port = 'port',
            username='username',
            password='password',
            pkey='load_key_if_relevant')


# SCPCLient takes a paramiko transport as its only argument
scp = SCPClient(ssh.get_transport())

scp.put('file_path_on_local_machine', 'file_path_on_remote_machine')
scp.get('file_path_on_remote_machine', 'file_path_on_local_machine')

scp.close()
Run Code Online (Sandbox Code Playgroud)

所以你想要的实际类型是scp.SCPClient.