all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Bob Proulx <bob@proulx.com>
To: Wenshan Ren <renws1990@gmail.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: EShell tips on SSH?
Date: Tue, 15 Jan 2013 00:32:34 -0700	[thread overview]
Message-ID: <20130115073234.GA29218@hysteria.proulx.com> (raw)
In-Reply-To: <6faf1f5e-de18-4c8f-b5a8-325b67790f6c@googlegroups.com>

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	other threads:[~2013-01-15  7:32 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-15  0:13 EShell tips on SSH? Wenshan Ren
2013-01-15  7:32 ` Bob Proulx [this message]
2013-01-15  7:38 ` Michael Albinus
     [not found] ` <mailman.17475.1358235159.855.help-gnu-emacs@gnu.org>
2013-01-15 23:09   ` Wenshan Ren
     [not found] ` <mailman.17476.1358235541.855.help-gnu-emacs@gnu.org>
2013-01-15 23:12   ` Wenshan Ren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130115073234.GA29218@hysteria.proulx.com \
    --to=bob@proulx.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=renws1990@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.