使用带有代理的sftp(http)和python paramiko上传文件

使用带有代理的sftp(http)和python paramiko上传文件,python,sftp,paramiko,http-proxy,Python,Sftp,Paramiko,Http Proxy,我是python paramiko的新手。我正在尝试使用PythonParamiko将文件上传到带有sftp的客户端服务器。我有没有代理设置的代码。请在下面找到 host = "abc.mno.com" port = 22 proxy_uri = "http://username:password@proxyIP:port" url = urlparse(proxy_uri) http_con = http.client.HTTPConnection(ur

我是python paramiko的新手。我正在尝试使用PythonParamiko将文件上传到带有sftp的客户端服务器。我有没有代理设置的代码。请在下面找到

host = "abc.mno.com"
port = 22
proxy_uri = "http://username:password@proxyIP:port"
url = urlparse(proxy_uri)
http_con = http.client.HTTPConnection(url.hostname, url.port)
print(url.hostname)
http_con.trust_env=False
headers = {}
if url.username and url.password:
    auth = '%s:%s' % (url.username, url.password)
    headers['Proxy-Authorization'] = 'Basic '+auth
    print(headers)
    http_con.set_tunnel(host, port, headers)
    http_con.connect()
    sock = http_con.sock    client = paramiko.SSHClient()
    client.connect(
        hostname=host,
        port=port,
        username='username',
        key_filename="E:\\keyfile.pem",
        sock=sock,
        )
    print('connected')
我正在windows server中尝试此操作。当我执行该程序时,我收到一个错误,说明“OSError:Tunnel connection failed:407 Proxy Authentication Required”。如何对代理进行身份验证。
任何人都可以帮助我通过代理(http)设置连接到sftp。

“我只想在python脚本中单独使用代理”-这就是@tintin对重复问题的回答,不是吗?@MartinPrikryl,我无法在windows中安装tinyproxy(@tintin将此作为步骤1提到)。另外,我使用的代理有用户名和密码。我对这个paramiko和代理是完全陌生的。tinyproxy是作为测试代理提到的,代码是针对它进行测试的。这不是解决方案的一部分“您所需要的只是任何允许您连接到ssh端口的代理”。明白了。谢谢我尝试了下面的代理设置代码。我在声明“OSError:隧道连接失败:需要407代理身份验证”时出错。如何提供代理身份验证。检查我添加到副本列表中的新链接。“我只想在python脚本中单独使用代理”-这就是@tintin对重复问题的回答,不是吗?@MartinPrikryl,我无法在windows中安装tinyproxy(@tintin将此作为步骤1提到)。另外,我使用的代理有用户名和密码。我对这个paramiko和代理是完全陌生的。tinyproxy是作为测试代理提到的,代码是针对它进行测试的。这不是解决方案的一部分“您所需要的只是任何允许您连接到ssh端口的代理”。明白了。谢谢我尝试了下面的代理设置代码。我在声明“OSError:隧道连接失败:需要407代理身份验证”时出错。如何提供代理身份验证。请检查我添加到副本列表中的新链接。