Open SingularBunny opened 9 years ago
Or without monkeypatch:
def connect(self, host, port, user, proxy_type=None, proxy_addr=None, proxy_port=None, proxy_rdns=True,
proxy_username=None, proxy_password=None):
# Replace paramiko socket with socksipy object if proxy is defined.
if proxy_type and proxy_addr is not None:
sock = socks.socksocket()
sock.set_proxy(socks.PROXY_TYPE_SOCKS4 if proxy_type.upper() == 'SOCKS4' else socks.PROXY_TYPE_SOCKS5
if proxy_type.upper() == 'SOCKS5' else socks.PROXY_TYPE_HTTP, proxy_addr,
int(proxy_port), proxy_rdns, proxy_username, proxy_password)
sock.connect((host, int(port)))
else:
sock = '%s:%s' % (host, int(port))
fp = paramiko.Transport(sock)
fp.start_client()
return patator.TCP_Connection(fp, fp.remote_version)
New version of socksipy with bugfixes and additions: https://github.com/Anorov/PySocks
There's some useful addition that allow to use proxy in SSH login process.