gpg-agent em vez de ssh-agent

4

Eu tenho um Yubikey 4 e quero usar minhas chaves GPG armazenadas nele para autenticar em servidores SSH.
Eu quero usar o GitHub para começar. Eu já adicionei minha chave de autenticação GPG ao GitHub.

Meu problema é que quando eu ssh, meu agente não usa essa chave. Eu verifiquei tentando se conectar ao meu VPS com ssh -v , mas ele ignora minha chave GPG. Meu Yubikey está conectado e gpg2 --card-status mostra todos os detalhes. Eu sou capaz de assinar e decifrar bem, bem como usar os outros recursos do Yubikey.

A saída ssh

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/wilhelm/.ssh/id_rsa
debug1: Trying private key: /home/wilhelm/.ssh/id_dsa
debug1: Trying private key: /home/wilhelm/.ssh/id_ecdsa
debug1: Trying private key: /home/wilhelm/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

Eu desativei o gerenciador de senhas do gnome.

Eu olhei para Conectando o SSH e o Git ao gpg-agent e seguiu a sugestão, mas não parece estar funcionando.

╰─ ssh-add -l
Could not open a connection to your authentication agent.

╰─ ps aux | grep gpg-agent
wilhelm  26079  0.0  0.0  20268   980 ?        Ss   20:57   0:00 gpg-agent --daemon --enable-ssh-support --sh
wilhelm  31559  0.0  0.0  12724  2184 pts/1    S+   22:49   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn gpg-agent
    
por Wilhelm Erasmus 17.12.2015 / 19:59

1 resposta

4

ssh não pode abrir a conexão com o seu gpg-agent se você não der o caminho para isso.

Quando você inicia sua opção gpg-agent with --enable-ssh-support , ela imprime as variáveis ambientais que precisam estar disponíveis no shell, onde você usará o ssh . Existem poucas possibilidades de como obtê-las:

  • Pare seu gpg-agent e inicie-o novamente assim, no shell de onde você está usando seu ssh (essa deve ser a maneira mais fácil de testá-lo):

    eval $(gpg-agent --daemon --enable-ssh-support --sh)
    
  • Encontre o local do soquete de autenticação e configure a variável de ambiente SSH_AUTH_SOCK à mão

Mais tarde, quando você souber que funciona, você deve configurar o início do agente de acordo com a página de manual para gpg-agent(1) , provavelmente em ~/.xsession para começar automaticamente.

    
por 17.12.2015 / 22:02