Cách pythonic nhất để scp một tệp trong Python là gì? Con đường duy nhất tôi biết là
os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile) )
đó là một hack và không hoạt động bên ngoài các hệ thống giống như Linux và cần sự trợ giúp từ mô-đun PExect để tránh nhắc nhở mật khẩu trừ khi bạn đã cài đặt SSH không mật khẩu vào máy chủ từ xa.
Tôi biết về Twisted conch
, nhưng tôi muốn tránh tự mình thực hiện scp thông qua các mô-đun ssh cấp thấp.
Tôi biết paramiko
, một mô-đun Python hỗ trợ SSH và SFTP; nhưng nó không hỗ trợ SCP.
Bối cảnh: Tôi đang kết nối với bộ định tuyến không hỗ trợ SFTP nhưng không hỗ trợ SSH / SCP, vì vậy SFTP không phải là một tùy chọn.
EDIT : Đây là bản sao của Cách sao chép tệp vào máy chủ từ xa trong Python bằng SCP hoặc SSH? . Tuy nhiên , câu hỏi đó không đưa ra câu trả lời cụ thể về scp liên quan đến các khóa từ bên trong Python. Tôi hy vọng có một cách để chạy loại mã như
import scp
client = scp.Client(host=host, user=user, keyfile=keyfile)
# or
client = scp.Client(host=host, user=user)
client.use_system_keys()
# or
client = scp.Client(host=host, user=user, password=password)
# and then
client.transfer('/etc/local/filename', '/etc/remote/filename')
scp
thực sự gọiscp
dòng lệnh chỉ hoạt động trên * nix.