👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.


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 recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.
Versão do artigo: GitHub.com

Trabalhar com frase secreta da chave SSH

Você pode proteger suas chaves SSH e configurar um agente de autenticação para que não precise redigitar a senha toda vez que usar as chaves SSH.

Neste artigo

Com as chaves SSH, se alguém conseguir acessar seu computador, terá acesso a todos os sistemas que usam essas chaves. Para incluir uma camada extra de segurança, adicione uma frase secreta à sua chave SSH. Você pode usar ssh-agent para salvar sua frase secreta de forma segura e não precisar digitá-la novamente.

Adicionar ou alterar frase secreta

É possível alterar a frase secreta de uma chave privada sem gerar novamente o par de chaves. Basta digitar o seguinte comando:

$ ssh-keygen -p
# Start the SSH key creation process
> Enter file in which the key is (/Users/you/.ssh/id_rsa): [Hit enter]
> Key has comment '/Users/you/.ssh/id_rsa'
> Enter new passphrase (empty for no passphrase): [Digite a nova frase secreta]
> Enter same passphrase again: [Digite mais uma vez para garantir]
> Your identification has been saved with the new passphrase.

Caso a sua chave já tenha uma frase secreta, você precisará digitá-la antes de poder alterar para uma nova frase secreta.

Abrir automaticamente o ssh-agent no Git para Windows

Se você está usando o Git Shell instalado com o GitHub Desktop, não precisa seguir estas etapas. O GitHub Desktop abre automaticamente o ssh-agent para você.

Caso contrário, siga estas etapas para executar ssh-agent automaticamente quando você abrir o Git Bash ou o Git Shell. Copie as linhas a seguir e cole-as no arquivo ~/.profile ou ~/.bashrc no Git Shell:

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

If your private key is not stored in one of the default locations (like ~/.ssh/id_rsa), you'll need to tell your SSH authentication agent where to find it. Para adicionar a chave ao ssh-agent, digite ssh-add ~/path/to/my_key. Para obter mais informações, consulte "Gerar uma nova chave SSH e adicioná-la ao ssh-agent".

Dica: se você quiser que o ssh-agent esqueça sua chave depois de algum tempo, configure-o para isso executando ssh-add -t <seconds>.

Agora, quando você executar o Git Bash pela primeira vez, sua frase secreta será solicitada:

> Initializing new SSH agent...
> succeeded
> Enter passphrase for /c/Users/you/.ssh/id_rsa:
> Identity added: /c/Users/you/.ssh/id_rsa (/c/Users/you/.ssh/id_rsa)
> Welcome to Git (version 1.6.0.2-preview20080923)
>
> Run 'git help git' to display the help index.
> Run 'git help ' to display help for specific commands.

O processo do ssh-agent continuará sendo executado até você fazer logoff, desligar o computador ou interromper o processo.

Salvar a frase secreta na keychain

No OS X Leopard até o OS X El Capitan, estes arquivos padrão de chave privada são processados de forma automática:

  • .ssh/id_rsa
  • .ssh/identity

Na primeira vez que você usar a chave, precisará digitar sua frase secreta. Se você optar por salvar a frase secreta com a keychain, não precisará digitá-la novamente.

Caso contrário, armazene a frase secreta na keychain quando adicionar a chave ao ssh-agent. Para obter mais informações, consulte "Adicionar sua chave SSH ao ssh-agent".

Leia mais

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato