Primeiro precisamos criar a chave de criptografia para acessar o repositório:
mkdir github-keys
cd github-keys
ssh-keygen -o -t ed25519 -C “ssh@github.com” -f ~/github-keys/id_ed25519_github_ssh
chmod 600 id_ed25519_github_ssh*
cp id_ed25519_github_ssh ~/.ssh
Agora você precisa ir na sua conta do github para dar o acesso via chave.
Selecione Settings (esta opção aparece quando você clica no seu avatar no canto superior direito da janela). Esta opção irá abrir uma tela similar a mostrada abaixo. Selecione "SSH and GPG keys" e clique no botão "New SSH key".
Preencha os campos colocando no campo da chave o conteudo do arquivo da chave pública que você gerou no passo anterior (id_ed25519_github_ssh.pub neste exemplo).
Pronto. Agora podemos testar se o acesso está funcionando.
Vamos tentar uma chamada SSH informando explicitamente a chave de criptografia no comando:
ssh -i ~/.ssh/id_ed25519_github_ssh -T git@github.com
Se tudo funcionar você irá ver um conjunto de linhas semelhante ao mostrado abaixo:
Warning: No xauth data; using fake authentication data for X11 forwarding.
X11 forwarding request failed on channel 0
Hi h3dema! You've successfully authenticated, but GitHub does not provide shell access.
Se não funcionar, acrescente -v ao comando ssh para ver mais detalhes. Pode ser que, por exemplo, o nome do arquivo com a chave privada esteja errada, ou pode ser permissão de acesso, etc.
Se o comando funcionou, faça novo teste sem informar a chave explicitamente.
ssh -T git@github.com
No meu caso, na primeira vez que tentei o comando acima retornou:
git@github.com: Permission denied (publickey).
Usando o -v, descobri que o ssh não estava identificando a chave correta.
O GitHub sugere instalar um SSH agent forwarding.
Eu preferi, ao invés disto, criar um arquivo de configuração.
Criei o arquivo ~/.ssh/config e acrescentei as seguinte linhas
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github_ssh
Agora o comando funciona:
Comentários
Postar um comentário