A maneira mais fácil seria instalar ssh-askpass
. Este é o programa ssh-add
executado quando sua entrada padrão não é um terminal, mas um display X11 está disponível. O programa ssh-askpass
solicita sua senha em uma janela da GUI separada.
Se você deseja permanecer no Emacs, ou se deseja uma solução que funcione, independentemente de o X11 estar disponível ou não, você pode solicitar ao Emacs a senha. Aqui está um código Lisp (minimamente testado) para fazer isso.
(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)))))