Прямо сейчас у меня есть 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 находится в этой папке.
