sexta-feira, 12 de julho de 2024

Clonando um repositorio com git+ssh

 

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:




Nenhum comentário:

Postar um comentário

Desabilitar ModemManager no Ubuntu

 ModemManager provides a unified, high-level interface to control all kinds of modems: 4G/5G modems (LTE/NR) 3G modems NB-IoT / Cat-M1 modul...