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

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

Re: EShell tips on SSH?


From: Bob Proulx
Subject: Re: EShell tips on SSH?
Date: Tue, 15 Jan 2013 00:32:34 -0700
User-agent: Mutt/1.5.21 (2010-09-15)

Wenshan Ren wrote:
> I manage a few VMs via SSH. As an Emacs user, I'm considering to get
> everything done without leaving Emacs.

Sure.

> So far I've met two problems:
> 
> 1. ssh -A
>    ssh -A does agent forwarding, but I can't find the EShell
>    equivalent by searching the Emacs Info.

How are you invoking ssh?

My first thought is the use of the emacs "tramp" module.  This is
quite well documented and very useful.  If you are using tramp please
say so.  If you are not using tramp then look up the documentation and
read up on tramp.  You will like it.

>    How do you achieve the same effect of ssh -A in Emacs?

I don't recommend to forward your agent.  If you do forward your agent
only forward it to systems that you trust.  Because root on the remote
system can make use of your forwarded agent.

If you do want to forward your agent anyway I would set it up to do so
in your ssh configuration file.  That would avoid the need for a
command line option.  Then when Emacs and Tramp use ssh it will get
the agent forwarding because of the ssh configuration.  Something like
this usually in your $HOME/.ssh/config file:

  Host foo.example.com
    ForwardAgent yes

If you do this then your ssh-agent will be forwarded through tramp
shell and tramp eshell sessions.  I tested this just now and it worked
okay for me.

> 2. cd /
>    After `cd /ssh:username@host', `cd /' will change directory to /
>    of my local machine.  Is there any way to make EShell behave like
>    a ordinary bash sshed to a remote machine?

I think the idea for "cd" in eshell is that "/ssh:username@host" is
just a directory path like any other.  Therefore "cd /" will also be a
path like any other.  It isn't special.  It isn't a chroot.

Even if you use "shell" (instead of "eshell") you are still inside
emacs.  I note that with shell doing "cd /" will stay on the remote
machine and won't crawl out of the facade.  I am not arguing against
eshell.  But just sayhing that shell implements this feature as you
wish it.  If you use shell then you will be ssh'd into the machine and
cd / will take you to the root of the remote machine as you desire.

Bob




reply via email to

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