Я использую keychain
для управления ssh-агентами. Он запускает агент и выгружает соответствующие параметры (PID агента и сокет) в сценарий, который может быть получен из оболочки. Есть пакет Emacs keychain-environment
, который может вставить это в Emacs.
~/.bash_profile
:
# keychain manages ssh-agents
type keychain >&/dev/null \
&& keychain --agents ssh
Это запускает запуск keychain
при входе в систему, который запускает ssh-agent
и выгружает его информацию в файл. keychain
является идемпотентным, поэтому последующие входы в систему (например, вход с помощью ssh
) не запустят новый ssh-agent
, если он уже запущен.
~/.bashrc
:
# keychain keeps track of ssh-agents
[ -f $HOME/.keychain/$HOSTNAME-sh ] \
&& . $HOME/.keychain/$HOSTNAME-sh
Это позволяет любой новой оболочке повторно использовать агент. Я не думаю, что это действительно имеет отношение к Emacs, но, очевидно, полезно.
~/.emacs.d/init.el
:
(require 'keychain-environment)
(keychain-refresh-environment)
Это загружает информацию об агенте в Emacs, так что Emacs может общаться с ним (или, точнее, любой процесс ssh
, запущенный Emacs, может видеть соответствующие переменные окружения).
person
jpkotta
schedule
10.02.2017
ssh-agent
выводит некоторые переменные среды (в виде исходного сценария оболочки) при запуске. Если этот агент все еще работает, и вы записали эти настройки в читаемый файл, я полагаю, что вы сможете подключиться к этому агенту, прочитав эти значения в своей среде. Вы можете управлять этим самостоятельно или использовать что-то вроде связки ключей. - person phils   schedule 10.02.2017