help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Using tramp to connect to a remote emacs session


From: Suvayu Ali
Subject: Re: Using tramp to connect to a remote emacs session
Date: Fri, 04 Sep 2009 04:05:09 -0700
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090814 Fedora/3.0-2.6.b3.fc11 Lightning/1.0pre Thunderbird/3.0b3

Hi Michael,

On Friday 04 September 2009 12:03 AM, Michael Albinus wrote:
Suvayu Ali<fatkasuvayu+linux@gmail.com>  writes:

Correct me if I go wrong, when I issue that command emacsclient tells
the remote server to connect with the localhost over tramp. It
determines where the remote server is from the server file.

Yes.

My problem is my ISP at the local machine doesn't allow me to login to
it from outside. In other words I probably don't have a static ip. So
when I issue the command I get,

$ emacsclient /ssh:user@local.host:~/file
emacsclient: connect: Connection refused
emacsclient: connected to remote socket at xxx.xx.xxx.xx
Waiting for Emacs...

*ERROR*: Process died

So at least emacsclient was able to connect your remote server. Good.

And on the remote machine I get the following in the *Messages* buffer,

Tramp: Opening connection for user@local.host using ssh...
Tramp: Waiting 60s for local shell to come up...
Tramp: Sending command `ssh local.host -l user  -q -e none&&  exit || exit'
Tramp: Waiting for prompts from remote shell
File error: Process died

That I do not catch. Are the messages exactly as you have written, or
did you exchange the real user and host name by "user" and "local.host"?

My lab is a bit paranoid about security so I edited out the specifics and put in generic names. :)

Note, that "user" shall be the user name you run your local host, and
"local.host" must be an FQDN of your host, or an IP address.

The host name for my localhost is limited to the local network. The Siemens router from my ISP (Telus) probably implements some kind of NAT (I'm not sure). So the outgoing connection worked, whereas the incoming connection failed.

So to summarize my problem is I can only connect one way, local.host to
remote machine, and hence tramp fails to work. Does this mean the only
way I will get this working is to get my ISP to give me a static ip?

You have mentioned two different explanations. Either your ISP does not
allow you to login from the outside. Then we could stop. But usually,
they don't forbid it.


I don't have a static IP, moreover from the outside I can only see my ISP's servers not my home machine. Hence I can't login from the outside.

If you have a dynamic IP address (the other possiblitiy), you could run

   emacsclient /ssh:user@1.2.3.4:/file/to/edit

"1.2.3.4" would be the IP address you are currently using. Because this
changes day by day, you might evaluate it every time in a script,
starting emacsclient.

The more simple solution is to register your local machine with dynamic
DNS. Let's say you have registered it at http://www.dyndns.com/, under
the name "suvayu.homelinux.org" (just as example). Then you could
connect via

   emacsclient /ssh:user@suvayu.homelinux.org:/file/to/edit


This is very interesting. I had no idea such a service existed! I will definitely look into this.

Another trap you could enter is your router configuration at home. You
must allow incoming connections at port 22 (for ssh), and it must be
forwarded to your local host.


I can login to my router's admin interface, so that should not be difficult to setup.

Thanks for your patience. :)

--
Suvayu

Open source is the future. It sets us free.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]