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: Michael Albinus
Subject: Re: Using tramp to connect to a remote emacs session
Date: Fri, 04 Sep 2009 09:03:17 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)

Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:

> Hi Michael,

Hi,

>> ---
>> * How can I use TRAMP to connect to a remote GNU Emacs session?
>>
>>    You can configure Emacs Client doing this.  On the remote host,
>>    you start the Emacs Server:
>>
>>         (require 'server)
>>         (setq server-host (system-name)
>>               server-use-tcp t)
>>         (server-start)
>>
>>    Make sure, that the result of `(system-name)' can be resolved on
>>    your local host; otherwise you might use a hard coded IP address.
>>
>>    The resulting file `~/.emacs.d/server/server' must be copied to
>>    your local host, at the same location.  You can call then the
>>    Emacs Client from the command line:
>>
>>         emacsclient /ssh:user@host:/file/to/edit
>>
>>    `user' and `host' shall be related to your local host.
>
> 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"?

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.

> 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.

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

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.

> Thanks for the help so far Michael. Much appreciated.

Best regards, Michael.




reply via email to

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