帕拉米科';s SFTP Python连接

帕拉米科';s SFTP Python连接,python,ssh,sftp,paramiko,Python,Ssh,Sftp,Paramiko,我正在尝试使用Paramiko的库与Python(v2.7)建立一个SFTP连接 从零零碎碎的网络上,我能够(我想无论如何是这样)使用私有加密证书进行连接 情况如下: import paramiko sftp = paramiko.SSHClient() hostname = "sftp.host.com" port = 8022 username = "sftplogin" k = paramiko.RSAKey.from_private_key_file("private.pem", p

我正在尝试使用Paramiko的库与Python(v2.7)建立一个SFTP连接

从零零碎碎的网络上,我能够(我想无论如何是这样)使用私有加密证书进行连接

情况如下:

import paramiko
sftp = paramiko.SSHClient()

hostname = "sftp.host.com"
port = 8022
username = "sftplogin"

k = paramiko.RSAKey.from_private_key_file("private.pem", password="XXX")
sftp.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print "Connecting..."
sftp.connect(hostname, port, username=username, pkey=k )
print "Connected to: " + hostname + ":" + port
print sftp.getcwd()
sftp.close()
在这一点上,我只是想看看我是否没有妄想,事实上没有连接,所以我试图打印一个getcwd()来获取当前目录。。。可悲的是,我一事无成,因为它返回了这个错误:

AttributeError:“SSHClient”对象没有属性“getcwd”

谁能告诉我为什么?我做错了什么

提前谢谢

您实例化了一个对象,但正在尝试执行

您应该能够执行此操作以证明以下事实:

sftp.exec_command('pwd')

但我认为您的意思是实例化SFTP类,而不是SSH客户端,因此这可能是您出错的地方。

这对我来说很有效

import os
import paramiko

host = "sftp.host.com"
port = 8022
transport = paramiko.Transport((host, port))
username = "sftplogin"
mykey = paramiko.RSAKey.from_private_key_file("private_export.pem", password="XXX")
print "Connecting..."
transport.connect(username = username, pkey = mykey)
sftp = paramiko.SFTPClient.from_transport(transport)
print "Connected."
print sftp.listdir()
sftp.close()
transport.close()
print "Closed connection."