SSH#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
This guide explains how to prepare your SSH server and client for use with the Nitrokey. For configuring PuTTY, see this guide:
A Nitrokey já deve ter chaves PGP instaladas e o chaveiro local GnuPG deve conhecer as chaves.
Preparação no cliente#
Certifique-se de que ~/.gnupg/gpg.conf contém “use-agent”
Adicionar suporte ssh ao gnupg-agent adicionando “enable-ssh-support” a ~/.gnupg/gpg-agent.conf
Se o ficheiro ainda não existir, pode simplesmente criá-lo.
Adicione o seguinte código algures no seu ~/.bashrc (para carapaça de peixe, procure here)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
Basta reiniciar o seu sistema ou tentar
pkill gpg-agent
e abrir uma nova linha de comando para ter a certeza de que tudo está definidoEm caso de problemas, tente
gpg2 --card-status
na primeira utilização para garantir que o gpg-agent começa
Preparação para o servidor#
Você pode gerar um arquivo authorized_keys executando
gpg2 --export-ssh-key keyID >> ~/authorized_keys
onde
keyID
é a identificação da sub-chave que está a ser usada para autenticação na sua Nitrokey. O Nitrokey já deve ser conhecido pelo chaveiro local GnuPG. Pode agora anexar esse ficheiro a um servidor remoto’s autorizado_keys e quando você ssh ao servidor você’ser-lhe-á pedido um pin em vez de uma frase-chave.
Resolução de problemas#
Se ainda lhe for pedida uma palavra-passe, por favor assegure-se de que
echo $SSH_AUTH_SOCK
devolve algo como “/run/user/1000/gnupg/S.gpg-agent.ssh” ou “/home/username/.gnupg/.S.gpg-agent.ssh”. Infelizmente, houve algumas mudanças no GnuPG no passado, de modo que o conteúdo real pode diferir do sistema e da versão GnuPG. Em alguns sistemas podem mesmo existir múltiplas pastas nesta variável guardadas. É necessário adaptar o código acima dado em .bashrc para que a variável SSH_AUTH_SOCK esteja correcta. Em dúvida procure por “SSH_AUTH_SOCK” em
man gpg-agent
para encontrar o código real da sua versão/sistema.
Pode verificar se tem um “pinentry” programa instalado através do seu gestor de pacotes. Pode precisar de instalá-lo no gpg-agent.conf também. Pode ser necessário ` apontar o gpg-agent para o TTY correcto <https://wiki.archlinux.org/index.php/GnuPG#Configure_pinentry_to_use_the_correct_TTY>`__.