Editing remote files with Emacs using public key authentication

There is no TRAMP equivalent to ssh user@host -i private-key.pem. However, if you run the shell command ssh-add private-key.pem, then ssh (and thus TRAMP) will automatically use private-key.pem for authentication. Simply ssh user@host will work on the shell, and opening the file /user@host:~/filename.txt will work in emacs, without it prompting for a password.


I don't get your question as Tramp works perfectly well with public-key authenticated SSH connections. For instance, assuming you have set the following config in ~/.ssh/config:

Host remotehost
    User     mylogin
    Port     22
    Hostname remotehost.fqdn

and assuming that you can run ssh remotehost correctly in a terminal, then you are able to open your remote file using TRAMP C-x C-f /remotehost:path/to/file


If you are on Windows you can use plink with tramp easily. You have to make sure the plink binary is in your path and have to customize the variable (M-x customize-option) tramp-default-method to plink which combined with pageant would get you what you want.

I let you read the putty home page how to configure pageant to add your key.

There is the method plinkx as well which use the profile name so when you do a :

C-x C-f /putty_profile:

It will get the putty_profile from your putty saved profile name.

If you are using Linux usually modern distros should have the gnome keyring (named as well seahorse) starting X with a global SSH agent. Example on my debian distro :

chmouel@lutece:~$ ps aux|grep ssh-agent
chmouel   2917  0.0  0.0   4904   552 ?        Ss   Aug30   0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/seahorse-agent --execute x-session-manager

if you do a ssh-add (making sure you have identity in your ~/.ssh properly configured) it should request for your password and identify for all your X session.

If it does not happen you probably have a problem somewhere else in your distro.