tramp-devel
[Top][All Lists]
Advanced

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

Re: Tramp no longer connects to aws instances


From: Frederick Bartlett
Subject: Re: Tramp no longer connects to aws instances
Date: Sat, 26 Oct 2019 10:20:48 -0400

Curiouser and curiouser ...

I did have the host in my ~/.ssh/config file -- with the wrong ip address and the wrong path to the key. (Nevertheless, Tramp had worked for years ....)

So I fixed that, and can now connect from the command line via ssh <foo>, as one would expect (I had been using an aliased command).

However, Tramp works only if I supply the username in the connect string: (find-file "/ssh:<user>@<foo>:/home/<user>/<file>" t)

If I don't, it uses a wrong name from 'tramp-default-user-alist, and the connection fails. Even if I remove that name from .emacs and reload, Tramp still uses that name, so it must be getting it from elsewhere -- it's not my local machine username, but the name that goes with an entirely different remote server.

Clearly, I need to read the documentation -- but now the question (much less important) is, How did I ever get this to work in the first place?

Thanks!
Fred

On Sat, Oct 26, 2019 at 9:20 AM Michael Albinus <address@hidden> wrote:
Frederick Bartlett <address@hidden> writes:

Hi Fred,

> Here's your shell experiment (same result as from inside Emacs):
>
>     $ ssh -l ec2-user  -o ControlMaster=auto -o ControlPath='tramp.%C'
>     -o ControlPersist=no -e none xx.xxx.xxx.xxx
>     address@hidden: Permission denied
>     (publickey,gssapi-keyex,gssapi-with-mic).
>
> And here's my usual ssh command (which works):
>
>     ssh -i <path_to_public_key_file> -o ServerAliveInterval=5 -o
>     ServerAliveCountMax=1 address@hidden

The difference is "-i <path_to_public_key_file>". Is it located
somewhere else but in ~/.ssh? An unusal name? And is it really a public
key file? Ususally, "-i" specifies the identity (private key) file.

> Could I edit the Tramp command in Emacs to include a reference to
> public key?

Sure. Have a look at tramp-methods. There is an entry like

--8<---------------cut here---------------start------------->8---
 ("ssh"
  (tramp-login-program "ssh")
  (tramp-login-args
   (("-l" "%u")
    ("-p" "%p")
    ("%c")
    ("-e" "none")
    ("%h")))
  (tramp-async-args
   (("-q")))
  (tramp-remote-shell #1#)
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
--8<---------------cut here---------------end--------------->8---

You could overwrite the tramp-login-args element, via a connection
property "login-args". Consult the docstring of tramp-methods for the
meaning of the %x templates. And consult the Tramp manual about
connection properties at (info "(tramp) Predefined connection
information")

Alternatively, you could add an entry in your ~/.ssh/config like this:

--8<---------------cut here---------------start------------->8---
Host foo
        HostName        xx.xxx.xxx.xxx
        User            ec2-user
        IdentityFile    /path/to/identity/file
--8<---------------cut here---------------end--------------->8---

With this, you can use Tramp via "/ssh:foo:". And also in your shell,
you can call directly "ssh foo".

> Thanks,
> Fred

Best regards, Michael.

reply via email to

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