Here's my setup: I have a laptop that I roam around everywhere with, and I have a desktop computer at home that is connected to the web using a router with NAT.

My objective here is to create an SSH server which I can use for the purpose of file storage/access as well as using it as a proxy server. However, the problem is that the desktop (which i'm using as the SSH server) is on a router behind a NAT. This means I can't connect to the server from outside my home network.

I want to be able to connect directly to my desktop from an outside network using the laptop. Here are the options I've found on the web so far:

Teamviewer - I really don't want to use this, I tried it and didn't like it one bit.

Configure port forwarding on the router - Again, not an option since the router is actually operated by the ISP and they won't let me reconfigure it.

Using a program called pwnat which I found here - This seems like the most viable of all my options, but I haven't been able to figure out how to get it to work. Also, from the poor documentation, it seems to be quite a pain to use as well.

Reverse tunnel as show here - This cannot work as I don't have a "middle" computer

Is there some way I can make the connection through SSH from the laptop on a regular basis? Otherwise, is there some other alternative that will let me use the desktop as a file server and proxy?

Edit: There was another alternative provided below by ObsessiveFOSS

Using the gogo6 client - Seemed like a good option, but I couldn't make it work. Possibly because my ISP/Router doesn't appear to support IPv6.

Are you sure you cannot configure port forwarding in the router? That's weird on a domestic router. That would be the easiest option.
–
SalemOct 10 '12 at 16:21

OK is the router connected to a modem, or is the router the modem?
–
TardisGuyOct 10 '12 at 16:29

Did Teamviewer work with your setup? If it did, it's very likely that ssh works as well if you configure it to use the right port(s).
–
phoibosOct 10 '12 at 16:36

The proper way to enable ssh access from the outside would be to port forward the router. Some additional information about the ISP and router (make and model) are needed here. I (and i'm sure most others) find it hard to believe that the ISP would disallow the customer access to the routers UI for modification.
–
AnthonyOct 10 '12 at 16:49

1

@Anthony Some ISP's run more than one customer on an IP address and don't allow this.
–
hexafractionOct 10 '12 at 16:49

Okay, this seems interesting. I'm at school right now, but I will try it once I get back. I'm curious though, wouldn't you need to configure the server with this as well?
–
amol.kamathOct 11 '12 at 0:46

You install gogoc on the server. Sorry if I was unclear.
–
hexafractionOct 11 '12 at 0:49

Oh, sorry, my bad. Didn't notice that bit. Is there a tutorial somewhere that could tell me how to bind to the freenet6 interface from the SSH client?
–
amol.kamathOct 11 '12 at 1:05

I recommend you install openssh-server. It binds to all hosts. I am not totally sure you can access the server from an IPv4 network, but you might be able to do so. If it fails to connect from IPv4, you can also install the Gogo6 clent on the client machine(assuming you travel with a laptop or have permission to install it).
–
hexafractionOct 11 '12 at 10:38