我一直在尝试使用密码将文件 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 如果您的答案取决于密码,我必须使用密码而不是密钥。
在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.