Gerar uma nova chave SSH e adicioná-la ao ssh-agent

Depois de verificar a existência de chaves SSH, é possível gerar uma nova chave SSH para autenticação e adicioná-la ao ssh-agent.

Sobre a geração de chaves SSH

Se você ainda não tem uma chave SSH, você deve gerar uma nova chave SSH para usar para a autenticação. Se você não tem certeza se já tem uma chave SSH, você pode verificar se há chaves existentes. Para obter mais informações, consulte "Verificar as chaves SSH existentes".

Se você deseja usar uma chave de segurança de hardware para efetuar a autenticação em GitHub, você deverá gerar uma nova chave SSH para a sua chave de segurança de hardware. Você deve conectar a sua chave de segurança de hardware ao seu computador ao efetuar a a sua autenticação com o par de chaves. Para obter mais informações, consulte as notas de versão do OpenSSH 8.2.

Se não quiser reinserir a sua frase secreta toda vez que usar a sua chave SSH, você poderá adicionar sua chave ao agente SSH, que gerencia suas chaves SSH e lembra a sua frase secreta.

Gerar uma nova chave SSH

  1. Abra TerminalTerminalGit Bash.

  2. Cole o texto abaixo, substituindo o endereço de e-mail pelo seu GitHub.

    $ ssh-keygen -t ed25519 -C "your_email@example.com"

    Observação: Se você estiver usando um sistema legado que não é compatível com o algoritmo Ed25519, use:

    $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    O comando criará uma nova chave SSH, usando o e-mail fornecido como uma etiqueta.
    > Generating public/private ed25519 key pair.
  3. Quando aparecer a solicitação "Enter a file in which to save the key" (Insira um arquivo no qual salvar a chave), presssione Enter. O local padrão do arquivo será aceito.

    > Enter a file in which to save the key (/Users/you/.ssh/id_ed25519): [Press enter]
    > Enter a file in which to save the key (/c/Users/you/.ssh/id_ed25519):[Press enter]
    > Enter a file in which to save the key (/home/you/.ssh/id_ed25519): [Press enter]
  4. Digite uma frase secreta segura no prompt. Para obter mais informações, consulte "Trabalhar com frases secretas da chave SSH".

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]

Adicionar sua chave SSH ao ssh-agent

Antes de adicionar uma nova chave SSH ao agente para gerenciar suas chaves, você deve verificar as chaves SSH existentes e gerado uma nova chave SSH. Ao adicionar sua chave SSH ao agent, use o comando padrão "ssh-add" do macOS, e não um aplicativo instalado por macports, homebrew ou qualquer outra fonte externa.

  1. Inicie o ssh-agent em segundo plano.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Depending on your environment, you may need to use a different command. For example, you may need to use root access by running sudo -s -H before starting the ssh-agent, or you may need to use exec ssh-agent bash or exec ssh-agent zsh to run the ssh-agent.

  2. Se estiver usando macOS Sierra 10.12.2 ou posterior, será necessário modificar seu arquivo ~/.ssh/config para carregar automaticamente as chaves no ssh-agent e armazenar as frases secretas em seu keychain.

    • Primeiro, verifique se o arquivo ~/.ssh/config existe no local padrão.

      $ open ~/.ssh/config
      > The file /Users/you/.ssh/config does not exist.
    • Se o arquivo não existir, crie o arquivo.

      $ touch ~/.ssh/config
    • Abra seu arquivo ~/.ssh/config e modifique o arquivo para que contenha as seguintes linhas. Se o seu arquivo de chave SSH tiver um nome ou caminho diferente do exemplo de código, modifique o nome ou o caminho para corresponder à sua configuração atual.

      Host *
        AddKeysToAgent yes
        UseKeychain yes
        IdentityFile ~/.ssh/id_ed25519
      

      Observação: Se você optou por não adicionar uma frase secreta à sua chave, você deve omitir a linha UseKeychain.

      Observação: Se você vir um erro como este

      /Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain
      

      adicione uma linha de configuração adicional para a seção Host *:

      Host *
        IgnoreUnknown UseKeychain
      
  3. Adicione sua chave SSH privada ao ssh-agent e armazene sua frase secreta no keychain. Se você criou sua chave com um nome diferente ou se você estiver adicionando uma chave existente com um nome diferente, substitua id_ed25519 no comando pelo nome do seu arquivo de chave privada.

    $ ssh-add -K ~/.ssh/id_ed25519

    Observação: a opção -K está presente na versão padrão da Apple do ssh-add e armazena a frase secreta no keychain quando você adiciona uma chave SSH ao ssh-agent. Se você optou por não adicionar uma frase secreta à sua chave, execute o comando sem a opção -K.

    Caso não tenha a versão standard da Apple instalada, você poderá receber uma mensagem de erro. Para obter mais informações sobre como resolver esse erro, consulte "Erro: ssh-add: opção ilícita -- K".

  4. Adicione a chave SSH à sua conta em GitHub. Para obter mais informações, consulte "Adicionar uma nova chave SSH à sua conta de GitHub".

Se você tiver o GitHub Desktop instalado, você pode usá-lo para clonar repositórios sem usar chaves SSH.

  1. Certifique-se de que o ssh-agent está em execução. Você pode usar as instruções "Lançamento automático do ssh-agent" em "Trabalhando com palavras-chave SSH" ou iniciá-lo manualmente:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. Adicione sua chave SSH privada ao ssh-agent. Se você criou sua chave com um nome diferente ou se você estiver adicionando uma chave existente com um nome diferente, substitua id_ed25519 no comando pelo nome do seu arquivo de chave privada.

    $ ssh-add ~/.ssh/id_ed25519
  3. Adicione a chave SSH à sua conta em GitHub. Para obter mais informações, consulte "Adicionar uma nova chave SSH à sua conta de GitHub".

  1. Inicie o ssh-agent em segundo plano.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Depending on your environment, you may need to use a different command. For example, you may need to use root access by running sudo -s -H before starting the ssh-agent, or you may need to use exec ssh-agent bash or exec ssh-agent zsh to run the ssh-agent.

  2. Adicione sua chave SSH privada ao ssh-agent. Se você criou sua chave com um nome diferente ou se você estiver adicionando uma chave existente com um nome diferente, substitua id_ed25519 no comando pelo nome do seu arquivo de chave privada.

    $ ssh-add ~/.ssh/id_ed25519
  3. Adicione a chave SSH à sua conta em GitHub. Para obter mais informações, consulte "Adicionar uma nova chave SSH à sua conta de GitHub".

Gerar uma nova chave SSH para uma chave de segurança de hardware

Se você estiver usando macOS ou Linux, Talvez você precise atualizar seu cliente SSH ou instalar um novo cliente SSH antes de gerar uma nova chave SSH. Para obter mais informações, consulte "Error: Unknown key type."

  1. Insira sua chave de segurança de hardware no seu computador.

  2. Abra TerminalTerminalGit Bash.

  3. Cole o texto abaixo, substituindo o endereço de e-mail da sua conta em GitHub.

    $ ssh-keygen -t ed25519-sk -C "your_email@example.com"

    Observação: Se o comando falhar e você receber o erro formato inválido ou a funcionalidade não compatível, é possível que você esteja usando uma chave de segurança de hardware incompatível com o algoritmo Ed25519. Insira o comando a seguir.

    $ ssh-keygen -t ecdsa-sk -C "your_email@example.com"
  4. Quando solicitado, toque no botão da sua chave de segurança de hardware.

  5. Quando for solicitado a "Insira um arquivo para salvar a chave", pressione Enter para aceitar o local padrão do arquivo.

    > Enter a file in which to save the key (/Users/you/.ssh/id_ed25519_sk): [Press enter]
    > Enter a file in which to save the key (/c/Users/you/.ssh/id_ed25519_sk):[Press enter]
    > Enter a file in which to save the key (/home/you/.ssh/id_ed25519_sk): [Press enter]
  6. Quando solicitado que você digite uma frase secreta, pressione Enter.

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
  7. Adicione a chave SSH à sua conta em GitHub. Para obter mais informações, consulte "Adicionar uma nova chave SSH à sua conta de GitHub".

Leia mais

Esse documento ajudou você?Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.