Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I was looking for a method to connect to arbitrary SSH servers through a known SSH proxy, without having to hardcode those target servers.

For example, let's say that I cannot access github.com from my current location, because port 22 is firewalled, but I can connect to my SSH server at home because it goes through a non-firewalled port. What is the most practical way to configure SSH so that when I explicitly want to connect through my proxy, it does so?

I wanted an easy solution; one that would be as simple as typing:

$ ssh user@server-i-want-to-connect-to.proxy

An example would be "ssh user@github.com.proxy".

share|improve this question
1  
when you say proxy, do you mean an HTTP proxy? If so, check out corkscrew agroman.net/corkscrew –  jackweirdy Sep 13 '12 at 22:33
    
No, by proxy I mean an SSH server to which you can connect to (a machine you own). I found out a way to do it, but I must wait for 8 hours before I can answer my own question... –  sebleblanc Sep 13 '12 at 23:10

1 Answer 1

up vote 0 down vote accepted

Add something like this to your .ssh/config

Host *%myproxy
    ProxyCommand ssh username@proxy.example.com /bin/netcat -w 1 $(echo %h | cut -d%% -f1) 22

Then you can simply run a command like ssh user@server-i-want-to-connect-to%myproxy. You do need to have netcat installed on your server acting as a proxy.

share|improve this answer
    
This is almost exactly the answer I was going to post (could not because I need more rep to post an answer before 8 hours has passed) however I would add the "%p" percent_replace instead of the hardcoded port 22 to the netcat command. This allows one to specify an arbitrary port number to connect to. Oh and I used sed instead of cut. –  sebleblanc Sep 14 '12 at 2:07

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.