Прямо сейчас у меня есть 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

Я просто выполнил следующие шаги:

  1. Откройте emacs с помощью emacs -Q
  2. Eval (require 'tramp) и (setq tramp-verbose 10)
  3. Открыть файл на удаленном сервере, используя tramp ; Графический интерфейс gnome-keyring-daemon запросил пароль ключа SSH.
  4. Убил удаленный файл с помощью C-x k
  5. В терминале я запустил ssh-add -D и убедился, что пароль больше не кешируется.
  6. Повторно открыл удаленный файл, используя C-x C-f M-p RET
  7. Бродяга открыл файл, не спрашивая пароль.

Копия отладочного буфера tramp находится в этой папке.

1 ответ1

0

Бродячие кэши использовали пароли. Вы можете отключить это с помощью setq password-cache nil)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .