Como iniciar corretamente o gpg-agent no Ubuntu 16.04

Como iniciar corretamente o gpg-agent no Ubuntu 16.04

Eu tenho um Yubikey4 carregado com minha chave gpg, atuando como um smartcard. Eu posso fazer gpg2 card-statuse isso me dá tudo mostrando todas as minhas subchaves e está tudo bem.

Eu então queria usar o gpg-agent para fazer ssh em hosts remotos usando minha chave gpg. Eu adicionei o seguinte ao meu~/.gnupg/gpg-agent.conf

enable-ssh-support
pinentry-program /usr/bin/pinentry-curses
default-cache-ttl 60

Eu também configurei SSH_AUTH_SOCKno meu .bashrc assim:

export SSH_AUTH_SOCK=~/.gnupg/S.gpg-agent.ssh

Se eu reiniciar minha máquina, a chave será adicionada e visível comssh-add -l

4096 SHA256....... cardno: ..... (RSA)

Mas qualquer tentativa de ssh para um servidor remoto simplesmente trava, ssh -vvvinforma que a máquina tenta assinar e enviar a chave, mas o agente recusa a operação.

Se eu executar um script que criei usando várias fontes, tudo funcionará.

   killall gpg
   export SSH_AUTH_SOCK=~/.gnupg/S.gpg-agent.ssh; gpg-agent --daemon --keet-tty --use-standard-socket --pinentry-program=/usr/bin/pinentry-curses 

Tentei implementar isso usando o bashrc, executando-o com meu gerenciador de deskopt e uma tarefa do usuário systemd sem sucesso.

Alguém pode me ajudar a descobrir como iniciar isso automaticamente no login, sem a necessidade de executar "meu script"?

Responder1

Resposta curta :

Execute como root:

$ echo enable-ssh-support >> ~/.gnupg/gpg-agent.conf
# editor /etc/X11/Xsession.options
    ... comment out "use-ssh-agent" ...
# aptitude purge libpam-gnome-keyring

Saia da sua sessão de desktop e faça login novamente, e verifique se $SSH_AUTH_SOCK está apontando para o seu agente gpg.

Explicação:

Por padrão, o gpg-agent não habilita seu agente SSH. Isso é feito passando --enable-ssh-supporta linha de comando ou adicionando uma linha a um arquivo de configuração como acima.

Em segundo lugar, o problema de outros agentes SSH. O agente OpenSSH é iniciado por padrão, configurado /etc/X11/Xsession.d/90x11-common_ssh-agentno pacote x11-common. Se estiver executando o GNOME, o agente GNOME Keyring também estará em execução. Ambos irão interferir com nosso agente GnuPG.

Desativar o agente OpenSSH é feito editando /etc/X11/Xsession.optionscomo acima.

Desabilitar o agente GNOME Keyring é potencialmente um pouco mais complicado. Usando o Xfce, pode-se desinstalar o pacote libpam-gnome-keyring e garantir que o Xfce não inicie os serviços GNOME (Configurações → Sessão e inicialização → Avançado → Iniciar serviços GNOME na inicialização– desmarque se estiver marcado).

Solução de problemas

Se depois de tudo isso o SSH_AUTH_SOCK ainda não estiver apontando para o seu agente gpg, você pode ter outro agente ainda interferindo no seu agente GnuPG. A variável SSH_AGENT_PID deve conter o PID do processo do agente, o que ajudará a identificar esse agente.

Fonte : Minha configuração perfeita do agente GnuPG/SSH

Responder2

Coloque o script em /etc/profile.d. Certifique-se de que o bit executável esteja definido ( chmod +x) e que o arquivo tenha uma .shextensão.

informação relacionada