Python Paramiko没有连接
我尝试使用paramiko通过sftp将文件上传到服务器Python Paramiko没有连接,python,paramiko,Python,Paramiko,我尝试使用paramiko通过sftp将文件上传到服务器 def send_file(server_, port_, user_, passwd_, file_, dir_): """ :return: """ try: transport = paramiko.Transport((server_, int(port_))) transport.connect(username=user_, password=passwd_)
def send_file(server_, port_, user_, passwd_, file_, dir_):
"""
:return:
"""
try:
transport = paramiko.Transport((server_, int(port_)))
transport.connect(username=user_, password=passwd_)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(file_, dir_)
sftp.close()
except RuntimeError, err:
print(str(err))
如果我执行这个函数,它只是挂起没有响应,没有错误消息,直到套接字超时
凭据是正确的,我使用来自同一台机器和同一网络的sftp和ssh客户端进行了尝试。
我还直接传递了传输和连接值,没有更改。
使用此功能时,服务器上的日志不显示任何连接。
主机密钥位于我的已知\u hosts文件中
try块中的第一条语句成功我向端口\传递了一个字符串而不是int,这会引发异常,第二行似乎有问题
这里有什么问题
提前谢谢
更新1:
我在ipython2中尝试过这个,它很有效。上述函数在PyQt程序中,通过
self.connect(self.b_upload, QtCore.SIGNAL("clicked()"), self.onUpload)
功能onUpload:
def onUpload(self):
file_, ok = QtGui.QInputDialog.getText(self, 'Input Dialog', 'Datei inklusive Pfad angeben: ')
server_, port_, user_, passwd_, dir_ = ftpmod.read_config()
ftpmod.send_file(server_, port_, user_, passwd_, file_, dir_)
您可以使用ssh.open\u sftp通过sftp发送:
所以它是否有效?您还可以尝试加载系统主机密钥:ssh.load\u system\u host\u keys请查看我的更新。这个问题可能不是paramiko问题,而是paramiko问题。见我在原始问题评论中的回答。最后更新:2014-08-25。所以:没有。这似乎是paramiko中的一个bug,请参见[this][1]和[this][2]问题。[1] :[2]:请阅读链接[2],它在'12年仍然存在,问题完全相同,连接线程中有一个锁。所以,再一次:不。
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(
paramiko.AutoAddPolicy())
ssh.connect(host, username, password)
ftp = ssh.open_sftp()
ftp.put(localpath, remotepath)
ftp.close()