La forma fácil sería instalarlo ssh-askpass
. Este es el programa que se ssh-add
ejecuta cuando su entrada estándar no es un terminal, pero hay una pantalla X11 disponible. El programa ssh-askpass
solicita su frase de contraseña en una ventana GUI separada.
Si desea permanecer dentro de Emacs, o si desea una solución que funcione si X11 está disponible o no, puede hacer que Emacs solicite la frase de contraseña. Aquí hay un código Lisp (mínimamente probado) para hacer esto.
(defun ssh-add-process-filter (process string)
(save-match-data
(if (string-match ":\\s *\\'" string)
(process-send-string process (concat (read-passwd string) "\n"))
(message "%s" string))))
(defun ssh-add (key-file)
"Run ssh-add to add a key to the running SSH agent.
Let Emacs prompt for the passphrase."
(interactive "fAdd key: \n")
(let ((process-connection-type t)
process)
(unwind-protect
(progn
(setq process (start-process "ssh-add" nil
"ssh-add" (expand-file-name key-file)))
(set-process-filter process 'ssh-add-process-filter)
(while (accept-process-output process)))
(if (eq (process-status process) 'run)
(kill-process process)))))