SSH Authentication with FIDO2¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
O SSH (Secure Shell) é um protocolo de rede utilizado para aceder e gerir de forma segura sistemas remotos, como servidores ou repositórios de código (por exemplo, GitLab, GitHub). Ele usa pares de chaves criptográficas para autenticação, permitindo logins sem senha com forte segurança. Com um Nitrokey, a chave SSH privada é gerada e armazenada diretamente no dispositivo, pelo que nunca sai do hardware. Para cada início de sessão, é necessário tocar na Nitrokey, adicionando uma confirmação física simples que protege contra o acesso não autorizado.
Generating SSH Key¶
Insert the Nitrokey into your computer.
Abra um terminal e crie sua chave SSH. Substitua
"your_comment"por uma etiqueta para a identificar (por exemplo, «Nitrokey GitLab»). Por padrão, a chave é uma chave não residente, o que significa que um identificador de chave local é armazenado em~/.ssh/enquanto a chave privada permanece segura no Nitrokey. Use a opção-O residentse quiser que a chave seja portável entre sistemas.ssh-keygen -t ed25519-sk -C "your_comment"ou para criar uma chave residente
ssh-keygen -t ed25519-sk -O resident -C "your_comment"Nota
As chaves residentes podem ser posteriormente listadas e importadas para outro sistema com:
ssh-keygen -KDurante a geração da chave, pode também ser-lhe pedido que defina uma frase-chave **** . Esta frase-chave encripta o identificador de chave local armazenado em
~/.ssh/(não a chave privada no Nitrokey, que permanece sempre segura dentro do dispositivo). A frase-passe é diferente do PIN do dispositivo FIDO2. O PIN protege a chave física em si, enquanto a frase secreta protege o seu ficheiro de chave pública SSH local. Recomendamos a utilização de uma frase-chave para proteger apenas as chaves não residentes.Quando lhe for pedido um caminho para o ficheiro, aceite a opção predefinida (
~/.ssh/id_ed25519_sk) ou escolha um nome personalizado comoid_ed25519_sk_gitlab.Se a Nitrokey ficar intermitente, confirmar a operação tocando-lhe.
Eventualmente, serão criados os seguintes ficheiros. Os nomes dos ficheiros podem ser diferentes se tiver especificado um nome personalizado ao gerar a chave.
~/.ssh/id_ed25519_sk→ identificador da chave privada (armazenada de forma segura no Nitrokey)
~/.ssh/id_ed25519_sk.pub→ ficheiro de chave pública
Adding Your Public Key¶
Assim que o par de chaves SSH for gerado, a chave pública deve ser adicionada ao serviço ou servidor a que pretende aceder.
Display your public key:
cat ~/.ssh/id_ed25519_sk.pubExemplo de saída (não utilizar esta tecla):
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
Copie a saída e adicione-a às configurações da chave SSH da sua conta. Consulte GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> ou GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account> para obter etapas detalhadas. Para habilitar o acesso remoto ao servidor SSH, adicione sua chave pública ao arquivo
~/.ssh/authorized_keysda sua conta de usuário no servidor SSH.