回答:
私はpassというシンプルなパスワードマネージャーを使用しています。Emacsとの統合に理想的なシンプルなコマンドラインインターフェースを提供します。バッキングストアは、GPGで暗号化されたGITリポジトリです。私は使用していませんが、実際にはEmacsパッケージに同梱されています。私のインターフェースは笑えるほどシンプルです:
(defun my-fixup-gpg-agent (frame)
"Tweak DISPLAY and GPG_TTY environment variables as appropriate to `FRAME'."
(when (fboundp 'keychain-refresh-environment)
(keychain-refresh-environment))
(if (display-graphic-p frame)
(setenv "DISPLAY" (terminal-name frame))
(setenv "GPG_TTY" (terminal-name frame))
(setenv "DISPLAY" nil)))
(add-hook 'after-make-frame-functions 'my-fixup-gpg-agent)
;; Simple caching
(defvar my-cached-passwords
nil
"Cache of passwords. Stored in plain text so you only want to cache
them if of low value.")
(defun my-pass-password (pass-name &optional cache)
"Return the password for the `PASS-NAME'."
(let ((cached-pass (assoc-default pass-name my-cached-passwords)))
(if cached-pass
cached-pass
(when (selected-frame)
(my-fixup-gpg-agent (selected-frame))
(let ((new-pass (chomp
(shell-command-to-string
(format "pass %s" pass-name)))))
(when (and new-pass cache)
(add-to-list 'my-cached-passwords (cons pass-name new-pass)))
new-pass)))))
Trampは、auth-sourcesバックエンドを使用してパスワードを管理します。.authinfoにいくつかの特殊なエントリが必要です。
machine melancholia port scp login daniel password geheim
詳細については、Trampマニュアルの「パスワード処理」の章をお読みください。
auth-sourcesには、パスワードエントリをオンザフライで作成するための機能もあります。私はこの機能をTrampで試したことはありませんが、少し調べてみてください。