SSH HTTP tunneling on OS X

6,206

Solution 1

MacOSX ssh client is based off OpenSSH.

ssh -D <port number> [email protected]

You want the -D flag for dynamic application-level port forwarding.

From the man-page - http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/ssh.1.html

Specifies a local "dynamic" application-level port forwarding. This works by allocating a socket to listen to port on the local side, optionally bound to the specified bind_address. Whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine. Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh will act as a SOCKS server. Only root can forward privileged ports. Dynamic port forwardings can also be specified in the configuration file.

Solution 2

If you are looking to access just a single service, for example some web frontend use:

ssh -L <local port>:<host>:<remote port> [email protected]

You can also put all this in your .ssh/config file, like this:

Host <nickname>
 HostName <remote.host>
 User <username>
 LocalForward <localport> <host>:<remoteport>

You can also specify multiple LocalForward lines if you have multiple servers/services to connect to, or use the dynamic application-level port forwarding as explained per Darren Hall.

Share:
6,206

Related videos on Youtube

user20222
Author by

user20222

Updated on September 17, 2022

Comments

  • user20222
    user20222 over 1 year

    On Windows I use PuTTY to tunnel to my home server and tell Firefox to use PuTTY as a proxy. How would I accomplish something similar on my Mac?