Reputation: 2164
I want to access my home computer from work through SSH, but the problem is my home computer is behind a NAT router (which I don't have access to). Because my work computer has a CentOS installed and is behind a proxy, I couldn't use TeamViwer (TV is ported on Linux with wine, and apparently proxy settings won't work).
Does anyone has knowledge of a program that would suit my needs?
Thanks, Claudiu
Upvotes: 47
Views: 65615
Reputation: 841
I have been looking for same thing and have found two tools!
tmate: When you start tmate in your terminal it will create a ssh link that you can share with another party that you wish to allow connecting to your terminal session. Another party just needs to have ssh installed.
Works through NATs without a problem, no 3rd party tool is needed.
tmate ssh links look like this:
Just install tmate on your system, there are packages in official repositories for almost all major distros (Fedora, Debian, Arch, Ubuntu...)
Also, tmate is open-source and allows you to set up and use your own server if you later decide to avoid using any 3rd-party service.
GoTTY: Share any terminal app you wish and the other party doesn't even need to have ssh, but you need to sort out port forwarding if you are behind a firewall and NAT.
Upvotes: 45
Reputation: 5868
Remote shell access:
Remote GUI access over SSH:
Upvotes: 2
Reputation: 376
You could also use an alternative like Robo-TiTO. This make your server accessible by Jabber chat, (GTalk/Hangouts) for example. It is a pretty simple and straight-forward terminal access. I've been using for a few years. I usually open a reverse SSH tunnel with it and after that it is just a proper SSH access.
Upvotes: 3
Reputation: 995
If you only need an ssh connection, you can spend 2.99$/month to buy a cheap vps, and use reverse ssh or ngrok to logging your computer behind NAT.
Upvotes: 1
Reputation: 283624
NX uses ssh transport. NoMachine distributes both free and premium versions of the tool, and there's also freenx.
Upvotes: 0
Reputation: 64
[1] Tool itself - i'd recommend taking look at jrdesktop [ http://jrdesktop.sourceforge.net/ ]; though not very active project and not particualry suited for modem-like connections, it is stable, reliable, multiplatform and works fine.
[2] Both jrdekstop and ssh, while not doing NAT-transversal (like Hamachi - so called zero configuration VPN; be sure to check this one! https://secure.logmein.com/products/hamachi2/), have options like "reverese connection" that you might find useful.
Once you establish such VPN between machines, you are free to use ssh,X,RDP,jrdesktop,VNC and other tools of your choice as you would in normal LAN. If you don't trust third party "transversal provider", I heared that it's relatively easy to write your own counterpart to such software (still, at least one of machines must be public, or both NAT-ed must have temporary access to public third machine).
Also, people at serverfault.com might offer better insights.
Upvotes: 4
Reputation: 4419
From the sounds of it, there's no particular "application" that's going to solve your problem, it's more of a networking issue - your home computer is behind NAT and your work computer is behind a proxy (http or socks).
So you need a third computer - preferably running Linux or BSD - call it "third-pc". A cheap Linux vps hosting is probably the best way to go.
From your work computer, you can use "connect" in your ssh configuration to tunnel through the proxy to "third-pc" - see http://bent.latency.net/bent/git/goto-san-connect-1.85/src/connect.html.
For example, here is an entry I have in my ~/.ssh/config:
Host foo.dyndns.org
User sonia
Port 443
ProxyCommand connect -H 1.2.3.4:8080 %h %p
(Using port 443 is a common way to get around http proxies).
From your home computer, you can use "autossh" to setup a persistent tunnel to "third-pc" - see http://www.harding.motd.ca/autossh/ and http://www.linux.com/archive/feature/134133
From your work computer, you can then ssh up to "third-pc", then back down the autossh tunnel to your home computer.
Upvotes: 5
Reputation: 701
I don't know if you mean you don't have external-net remote management of your home router, or if someone else keeps the password, but, if you can get access to your router you should likely be able to set up port forwarding so that when you ssh to the public-facing ip of the router, it will automatically send all ssh traffic to a box on the inside network.
Unless your ISP is doing something dastardly with carrier-grade NAT, that should work just fine.
Alternatively, you should be able to connect from home to your work machine via ssh and create a tunnel so that you can shell to your work machine and then grab the session between home and work.
Upvotes: 0
Reputation: 8699
You might be able just to use X forwarding with ssh -X host
or ssh -Y host
and just open graphical applications. Or you set up a VNC server that you could tunnel trough SSH as well.
Upvotes: -2