我在打开与paramiko的SFTP连接时遇到了一些麻烦.我目前的代码是:
client = SSHClient()
client.set_missing_host_key_policy(AutoAddPolicy())
client.load_system_host_keys()
client.connect('some.example.com', username="myuser", password="mypassword")
sftp_client = client.open_sftp()
sftp_client.put(my_local_file)
Run Code Online (Sandbox Code Playgroud)
但是在我点击client.open_sftp()的时候,我得到了"无法打开频道"的例外.
知道是什么原因引起的吗?我已经能够使用命令行sftp客户端打开与服务器的连接.
我在这里猜测我的调用,如果有人能指出我的例子,这将是伟大的.
您需要先创建并连接到传输:
transport = Transport((host, port))
transport.connect(username = username, pkey = mykey) # or password = mypassword
Run Code Online (Sandbox Code Playgroud)
现在可以启动SFTP客户端:
sftp_client = SFTPClient.from_transport(transport)
Run Code Online (Sandbox Code Playgroud)
然后你可以
sftp_client.put(my_local_file)
Run Code Online (Sandbox Code Playgroud)
当你完成了
sftp_client.close()
transport.close()
Run Code Online (Sandbox Code Playgroud)