emacs tramp trabalhando com gnome-keyring-daemon

0

Agora, tenho gnome-keyring-daemon definido para começar no login. Se eu executar emacs -q e, em seguida, abrir um arquivo em um servidor usando M-x find-file e, em seguida, inserir um arquivo em um servidor remoto como /ssh:user@server:/home/user/.bashrc , uma GUI será exibida e solicitará minha senha de chave privada ssh. Eu digitei a senha correta e o arquivo foi aberto perfeitamente.

No entanto, se a senha gnome-keyring-daemon expirar do chaveiro, emacs ainda permitirá a conexão ao arquivo sem inserir a senha. Por exemplo, digamos que eu abro um arquivo remoto e mato o arquivo com C-x k . Então eu vou para um terminal e digite ssh-add -D . Posso verificar que isso faz com que o chaveiro esqueça a senha executando ssh localhost (a GUI aparece e pergunta a senha.) Mas se eu tentar reabrir o arquivo remoto no emacs usando C-x C-f M-p RET , o arquivo será aberto sem exigir a senha.

A execução de tramp-cleanup-all-connections corrige esse problema, ou seja, o agente solicitará uma senha corretamente se a chave não estiver no chaveiro. A definição de tramp-persistency-file-name para nil parece não alterar o comportamento.

O que é uma maneira eficiente de corrigir esse problema? Eu corro tramp-cleanup-all-connections em algum gancho? Talvez em um temporizador? A execução desta função tem um impacto negativo em futuras conexões de tramp?

  • emacs-version: GNU Emacs 24.3.1
  • tramp-version: 2.2.6-24.3
  • gnome-keyring-daemon --versão: 3.2.2

EDITAR

Agora estou em um computador diferente com novas versões dos pacotes relevantes, mas ainda vejo o mesmo comportamento.

  • emacs-version: GNU Emacs 24.4.2
  • tramp-version: 2.2.9-24.4
  • gnome-keyring-daemon --versão: 3.10.1

Eu apenas executei os seguintes passos:

  1. Abra o emacs com emacs -Q
  2. Eval (require 'tramp) e (setq tramp-verbose 10)
  3. Abra o arquivo no servidor remoto usando tramp ; A GUI do gnome-keyring-daemon solicitou a senha da chave SSH.
  4. Matou o arquivo remoto usando C-x k
  5. Em um terminal, corri ssh-add -D e verifiquei que a senha não está mais em cache.
  6. Reaberto o arquivo remoto usando C-x C-f M-p RET
  7. Retire o arquivo aberto sem pedir uma senha.

Uma cópia do buffer de depuração do tramp está localizada em este pastebin .

    
por jarvisschultz 22.01.2014 / 01:41

1 resposta

0

Cópias de segurança de trampes usadas senhas. Você pode desabilitar isso por setq password-cache nil)

    
por 07.12.2014 / 13:04