paramiko无法打开SFTP连接

2 投票
1 回答
6689 浏览
提问于 2025-04-16 22:20

我在用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)

但是当我执行client.open_sftp()时,出现了“无法打开通道”的异常。

你们知道这可能是什么原因吗?我用命令行的sftp客户端可以成功连接到服务器。

我在这里对我的调用有点疑惑,如果有人能给我一个例子,那就太好了。

1 个回答

6

你需要先创建一个连接通道:

transport = Transport((host, port))
transport.connect(username = username, pkey = mykey) # or password = mypassword

现在可以启动SFTP客户端了:

sftp_client = SFTPClient.from_transport(transport)

然后你可以

sftp_client.put(my_local_file)

完成后记得

sftp_client.close()
transport.close()

撰写回答