【发布时间】:2016-06-30 12:03:14
【问题描述】:
目前,我正在使用 Python subprocess.POPEN 和 PuTTY psftp.exe 进行 SFTP 传输。
它工作正常,但不是很干净,也不是很便于携带。
我想使用 Python pysftp 重现相同的行为,但我不知道在哪里输入所有参数。我在 PuTTY 中有以下配置:
- 服务器IP:123.123.123.255
- 服务器端口:22
- 连接类型:SSH
- 自动登录用户名:我的用户
- 代理类型:HTTP
- 代理主机名:gw.proxy.fr
- 代理端口:1234
- 代理用户名:ProxyUser
- 代理密码:ProxyPass
我应该如何在 pysftp 中输入所有这些参数以便检索我的文件?
编辑: 使用 Martin Prikryl 的答案,我发现了一些新的东西可以探索。 如果我理解得很好,我需要使用套接字。 输入我需要的所有信息仍然有一些问题。
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
proxy = ("gw.proxy.fr",1234)
sock.connect(proxy)
target=("123.123.123.255",23)
cmd_connect = "CONNECT {}:{} HTTP/1.1\r\n\r\n".format(*target)
sock.sendall(cmd_connect)
我收到的回复是HTTP/1.0 407 Proxy Authentication Required,这很正常,因为我没有在任何地方使用代理身份验证信息。那么,您知道如何使用它们并将它们输入到我的套接字中吗?
【问题讨论】:
-
我在 'sock.sendall(cmd_connect)' 行中遇到了很多困难。因为它给出了 TypeError : bytes expected。它应该是 ´sock.sendall(bytes(cmd_connect),'UTF-8')'。
标签: python windows proxy putty pysftp