问题
I'm using emacs tramp mode to remotely edit files over ssh. The problem is that every time I save the file I'm editing I have to enter my user password. I find that very annoying. How can I write my password only once / editing session?
回答1:
Ah, from the tramp docs on password caching you can set:
(setq password-cache-expiry nil)
which requires the package password-cache.el.
Also, in the tramp sources, it mentions reading the ssh-agent(1) man page, which shows how to set it up so that you don't have to re-enter passwords (inside, or outside of Emacs):
There are two main ways to get an agent set up: The first is that the agent starts a new subcommand into which some environment variables are exported, eg ssh-agent xterm &. The second is that the agent prints the needed shell commands (either sh(1) or csh(1) syntax can be generated) which can be evalled in the calling shell, eg eval
ssh-agent -s
for Bourne-type shells such as sh(1) or ksh(1) and evalssh-agent -c
for csh(1) and derivatives.
回答2:
(setq password-cache-expiry nil)
回答3:
In addition to Trey Jackson's solution, there are a few more ways you can choose:
If you're on a *nix system, you can mount the remote directory with FUSE/SSHFS, and therefore you can edit files as they were on the local file system.
Use SSH public key authentication.
回答4:
Using public key (RSA) authentication is more secure and much more convenient. On a GNU/Linux system (and maybe others, I don't know) you typically would unlock your private key once per login session with a password and then use it.
回答5:
use SSH public key authentication.
来源:https://stackoverflow.com/questions/840279/passwords-in-emacs-tramp-mode-editing