Difference between revisions of "Tunneling SSH through HTTP proxies using HTTP Connect"

From ArchWiki
Jump to: navigation, search
m (Creating the tunnel: corkscrew is in [community] now)
m (codeline -> ic)
Line 10: Line 10:
  
 
Opening an SSH connection is pretty simple:
 
Opening an SSH connection is pretty simple:
  ssh user@server -o "ProxyCommand corkscrew {{Codeline|$proxy_ip_or_domain_name $proxy_port $destination_ip_or_domain_name $destination_port}}"
+
  ssh user@server -o "ProxyCommand corkscrew {{Ic|$proxy_ip_or_domain_name $proxy_port $destination_ip_or_domain_name $destination_port}}"
  
 
but that just opens a shell yet what we want is a tunnel, so we do this:
 
but that just opens a shell yet what we want is a tunnel, so we do this:
  ssh -ND {{Codeline|$port}} user@server -o "ProxyCommand corkscrew {{Codeline|$proxy_ip_or_domain_name $proxy_port $destination_ip_or_domain_name $destination_port}}"
+
  ssh -ND {{Ic|$port}} user@server -o "ProxyCommand corkscrew {{Ic|$proxy_ip_or_domain_name $proxy_port $destination_ip_or_domain_name $destination_port}}"
which creates a [http://en.wikipedia.org/wiki/SOCKS SOCKS] proxy on {{Codeline|localhost:$port}}.
+
which creates a [http://en.wikipedia.org/wiki/SOCKS SOCKS] proxy on {{Ic|localhost:$port}}.
  
 
= Using the tunnel =
 
= Using the tunnel =

Revision as of 17:26, 11 December 2011


Introduction

To open the connection to the server running the SSH daemon we will use the HTTP CONNECT method which allows a client to connect to a server through a proxy by sending an HTTP CONNECT request to this proxy.

Tip: If your proxy does not support the HTTP Connect method, see HTTP Tunneling

Creating the tunnel

For this we will use corkscrew, available in [community], which is «a tool for tunneling SSH through HTTP proxies».

Opening an SSH connection is pretty simple:

ssh user@server -o "ProxyCommand corkscrew $proxy_ip_or_domain_name $proxy_port $destination_ip_or_domain_name $destination_port"

but that just opens a shell yet what we want is a tunnel, so we do this:

ssh -ND $port user@server -o "ProxyCommand corkscrew $proxy_ip_or_domain_name $proxy_port $destination_ip_or_domain_name $destination_port"

which creates a SOCKS proxy on localhost:$port.

Using the tunnel

See Using a SOCKS proxy.

See Also

 ProxyCommand /usr/bin/proxytunnel -p some-proxy:8080 -d www.muppetzone.com:443