Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais atualizadas, acesse a documentação em inglês.

Gerando uma nova chave SSH e adicionando-a ao agente SSH

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 frases secretas da chave SSH

É possível acessar e gravar dados em repositórios no GitHub.com usando o SSH (protocolo Secure Shell). Ao se conectar por meio do SSH, você se autentica usando um arquivo de chave privada no computador local. Para obter mais informações, confira "Sobre o SSH."

Ao gerar uma chave SSH, você pode adicionar uma frase secreta para proteger ainda mais a chave. Sempre que você usar a chave, deverá inserir a frase secreta. Se sua chave tiver uma frase secreta e você não quiser inserir a frase secreta sempre que usar a chave, poderá adicionar sua chave ao agente SSH. O agente SSH gerencia suas chaves SSH e lembra sua frase secreta.

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, confira "Como verificar se há chaves SSH existentes".

Se você deseja usar uma chave de segurança de hardware para efetuar a autenticação em GitHub Enterprise Cloud, 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, confira as notas sobre a versão do OpenSSH 8.2.

Gerar uma nova chave SSH

Você pode gerar uma nova chave SSH no computador local. Após gerar a chave, você poderá adicionar a chave à sua conta em GitHub.com para habilitar a autenticação para operações Git por SSH.

Observação: o GitHub aprimorou a segurança removendo tipos de chaves mais antigos e não seguros em 15 de março de 2022.

Desde essa data, não há mais suporte para as chaves DSA (ssh-dss). Não é possível adicionar novas chaves DSA à conta pessoal em GitHub.com.

As chaves RSA (ssh-rsa) com um valid_after antes de 2 de novembro de 2021 podem continuar usando qualquer algoritmo de assinatura. As chaves RSA geradas após essa data precisam usar um algoritmo de assinatura SHA-2. Talvez alguns clientes mais antigos precisem ser atualizados para usar as assinaturas SHA-2.

  1. Abra TerminalTerminalGit Bash.

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

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

    Observação: se estiver usando um sistema herdado que não dá suporte ao algoritmo Ed25519, use:

    $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    Isto cria uma nova chave SSH, usando o nome de e-mail fornecido como uma etiqueta.

    > Generating public/private ALGORITHM key pair.

    Quando for solicitado a inserir um arquivo para salvar a chave, pressione Enter para aceitar o local padrão do arquivo. Observe que, se você criou chaves SSH anteriormente, ssh-keygen pode pedir que você reescreva outra chave. Nesse caso, recomendamos criar uma chave SSH personalizada. Para fazer isso, digite o local do arquivo padrão e substitua id_ssh_keyname pelo nome da chave personalizada.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM: [Press enter]
    > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
    > Enter a file in which to save the key (/home/YOU/.ssh/ALGORITHM):[Press enter]
  3. No prompt, digite uma frase secreta segura. Para obter mais informações, confira "Como trabalhar com frases secretas de 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 agente, use o comando ssh-add padrão do macOS e não um aplicativo instalado pelo MacPorts, pelo Homebrew ou por alguma outra fonte externa.

  1. Inicie o ssh-agent em segundo plano.

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

    Dependendo do seu ambiente, talvez seja necessário usar um comando diferente. Por exemplo, talvez seja necessário usar o acesso raiz executando sudo -s -H antes de iniciar o ssh-agent ou usar exec ssh-agent bash ou exec ssh-agent zsh para executar o ssh-agent.

  2. Se estiver usando o macOS Sierra 10.12.2 ou posterior, precisará modificar o arquivo ~/.ssh/config para carregar automaticamente as chaves no ssh-agent e armazenar as senhas no conjunto de chaves.

    • 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 o arquivo ~/.ssh/config e modifique-o para conter as linhas a seguir. 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 *.github.com
        AddKeysToAgent yes
        UseKeychain yes
        IdentityFile ~/.ssh/id_ed25519
      

      Observações:

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

      • Se você vir um erro Bad configuration option: usekeychain, adicione uma linha adicional à seção Host *.github.com da configuração.

        Host *.github.com
          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 estiver adicionando uma chave existente que tenha outro nome, substitua id_ed25519 no comando pelo nome do arquivo de chave privada.

    $ ssh-add --apple-use-keychain ~/.ssh/id_ed25519

    Observação: a opção --apple-use-keychain armazena a frase secreta no seu conjunto de chaves quando você adiciona uma chave SSH ao ssh-agent. Se você optou por não adicionar uma frase secreta à chave, execute o comando sem a opção --apple-use-keychain.

    A opção --apple-use-keychain está na versão padrão da Apple de ssh-add. Em versões do MacOS anteriores à Monterey (12.0), os sinalizadores --apple-use-keychain e --apple-load-keychain usavam a sintaxe -K e -A, respectivamente.

    Caso não tenha a versão standard de ssh-add da Apple instalada, você poderá receber uma mensagem de erro. Para obter mais informações, confira "Erro: ssh-add: opção inválida -- K".

  4. Adicione a chave SSH à sua conta em GitHub Enterprise Cloud. Para obter mais informações, confira "Como adicionar uma nova chave SSH à sua conta do GitHub".

Se você tiver o GitHub Desktop instalado, poderá usá-lo para clonar repositórios e não lidar com chaves SSH.

  1. Verifique se o ssh-agent está em execução: Use as instruções de "Como iniciar o ssh-agent automaticamente" descritas em "Como trabalhar com frases secretas de chave SSH" ou inicie-o 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 estiver adicionando uma chave existente que tenha outro nome, substitua id_ed25519 no comando pelo nome do arquivo de chave privada.

    $ ssh-add ~/.ssh/id_ed25519

  3. Adicione a chave SSH à sua conta em GitHub Enterprise Cloud. Para obter mais informações, confira "Como adicionar uma nova chave SSH à sua conta do GitHub".

  1. Inicie o ssh-agent em segundo plano.

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

    Dependendo do seu ambiente, talvez seja necessário usar um comando diferente. Por exemplo, talvez seja necessário usar o acesso raiz executando sudo -s -H antes de iniciar o ssh-agent ou usar exec ssh-agent bash ou exec ssh-agent zsh para executar o ssh-agent.

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

    $ ssh-add ~/.ssh/id_ed25519

  3. Adicione a chave SSH à sua conta em GitHub Enterprise Cloud. Para obter mais informações, confira "Como adicionar uma nova chave SSH à sua conta do 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, confira "Erro: tipo de chave desconhecido".

  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 Enterprise Cloud.

    $ ssh-keygen -t ed25519-sk -C "YOUR_EMAIL"

    Observação: se houver uma falha no comando e você receber o erro invalid format ou feature not supported,, você poderá estar usando uma chave de segurança de hardware que não dá suporte ao 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 precisar digitar 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, confira "Como adicionar uma nova chave SSH à sua conta do GitHub".