Прямо сейчас у меня есть gnome-keyring-daemon
для запуска при входе в систему. Если я запускаю emacs -q
и затем открываю файл на сервере, используя M-x find-file
а затем вводю файл на удаленном сервере, например /ssh:user@server:/home/user/.bashrc
, то появляется GUI и просит мой пароль SSH секретный ключ. Я ввожу правильный пароль, и файл открывается идеально.
Однако, если срок действия пароля gnome-keyring-daemon
истекает из набора ключей, emacs
прежнему разрешает подключение к файлу без ввода пароля. Например, допустим, я открываю удаленный файл, а затем убиваю его с помощью C-x k
. Затем я иду в терминал и ssh-add -D
. Я могу убедиться, что это заставит связку ключей забыть пароль, запустив ssh localhost
(GUI выскакивает и запрашивает пароль). Но если я попытаюсь повторно открыть удаленный файл в emacs, используя C-x C-f M-p RET
, файл откроется без пароля.
Запуск tramp-cleanup-all-connections
решает эту проблему, т. Е. Агент правильно запросит пароль, если ключ отсутствует в связке ключей. Установка tramp-persistency-file-name
в nil
, похоже, не меняет поведение.
Какой эффективный способ решить эту проблему? Я запускаю tramp-cleanup-all-connections
на каком-то хуке? Может по таймеру? Влияет ли использование этой функции на будущие соединения бродяги?
- emacs-версия: GNU Emacs 24.3.1
- бродяга-версия: 2.2.6-24.3
- gnome-keyring-daemon --version: 3.2.2
РЕДАКТИРОВАТЬ
Я сейчас на другом компьютере с новыми версиями соответствующих пакетов, но я все еще вижу то же поведение.
- emacs-версия: GNU Emacs 24.4.2
- бродяга-версия: 2.2.9-24.4
- gnome-keyring-daemon --version: 3.10.1
Я просто выполнил следующие шаги:
- Откройте emacs с помощью
emacs -Q
- Eval
(require 'tramp)
и(setq tramp-verbose 10)
- Открыть файл на удаленном сервере, используя
tramp
; Графический интерфейс gnome-keyring-daemon запросил пароль ключа SSH. - Убил удаленный файл с помощью
C-x k
- В терминале я запустил
ssh-add -D
и убедился, что пароль больше не кешируется. - Повторно открыл удаленный файл, используя
C-x C-f M-p RET
- Бродяга открыл файл, не спрашивая пароль.
Копия отладочного буфера tramp находится в этой папке.