Red Hat Training

A Red Hat training course is available for RHEL 8

12.3.2. Geração de pares de chaves SSH

Use este procedimento para gerar um par de chaves SSH em um sistema local e para copiar a chave pública gerada para um servidor OpenSSH. Se o servidor estiver configurado de acordo, você pode entrar no servidor OpenSSH sem fornecer nenhuma senha.

Importante

Se você completar os seguintes passos como root, somente root é capaz de usar as chaves.

Procedimento

  1. Para gerar um par de chaves ECDSA para a versão 2 do protocolo SSH:

    $ ssh-keygen -t ecdsa
    Generating public/private ecdsa key pair.
    Enter file in which to save the key (/home/joesec/.ssh/id_ecdsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/joesec/.ssh/id_ecdsa.
    Your public key has been saved in /home/joesec/.ssh/id_ecdsa.pub.
    The key fingerprint is:
    SHA256:Q/x+qms4j7PCQ0qFd09iZEFHA+SqwBKRNaU72oZfaCI joesec@localhost.example.com
    The key's randomart image is:
    +---[ECDSA 256]---+
    |.oo..o=++        |
    |.. o .oo .       |
    |. .. o. o        |
    |....o.+...       |
    |o.oo.o +S .      |
    |.=.+.   .o       |
    |E.*+.  .  . .    |
    |.=..+ +..  o     |
    |  .  oo*+o.      |
    +----[SHA256]-----+

    Você também pode gerar um par de chaves RSA usando a opção -t rsa com o comando ssh-keygen ou um par de chaves Ed25519, digitando o comando ssh-keygen -t ed25519.

  2. Para copiar a chave pública para uma máquina remota:

    $ ssh-copy-id joesec@ssh-server-example.com
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    joesec@ssh-server-example.com's password:
    ...
    Number of key(s) added: 1
    
    Now try logging into the machine, with: "ssh 'joesec@ssh-server-example.com'" and check to make sure that only the key(s) you wanted were added.

    Se você não usar o programa ssh-agent em sua sessão, o comando anterior copia a chave pública ~/.ssh/id*.pub modificada mais recentemente, caso ainda não esteja instalada. Para especificar outro arquivo de chave pública ou para priorizar chaves em arquivos sobre chaves armazenadas em cache na memória por ssh-agent, use o comando ssh-copy-id com a opção -i.

Nota

Se você reinstalar seu sistema e quiser manter os pares de chaves gerados anteriormente, faça backup do diretório ~/.ssh/. Após a reinstalação, copie-o de volta para seu diretório home. Você pode fazer isso para todos os usuários em seu sistema, incluindo root.

Etapas de verificação

  1. Acesse o servidor OpenSSH sem fornecer nenhuma senha:

    $ ssh joesec@ssh-server-example.com
    Welcome message.
    ...
    Last login: Mon Nov 18 18:28:42 2019 from ::1

Recursos adicionais

  • ssh-keygen(1) e ssh-copy-id(1) páginas man