Como conectar ao Github usando SSH

Para conseguir acessar o github utilizando SSH, primeiramente precisamos criar um par de chaves que serão usados para realizar a comunicação entre o computador do usuário e o próprio Github.

Para gerar uma chave SSH precisamos utilizar o terminal de uma distro linux, ou através do terminal do Git Bash, o seguinte comando:

   ssh-keygen -t rsa -b 4096 -C "email do usuário"

Se estive utilizando uma versão mais nova do OpenSSH pode usar este outro comando:

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

Qualquer um desses comandos irão criar duas chaves, uma chave pública e outra privada.

Durante a criação, o terminal irá solicitar um nome para o arquivo com a chave. Você pode digitar um nome para ele ou apenas teclar "Enter" para que o arquivo receba o nome padrão "id_rsa".

Após definir o nome, ele solicitará uma senha para uso da chave. Você pode digitar uma ou apenas teclar "Enter" e deixar ela em branco.

O próximo passo é inicializar o agente SSH pra que seja executado no sistema operacional.

     eval "$(ssh-agent -s)"

Com o agente SSH em execução, vamos adicionar o conteúdo da chave privada para que o agente manipule seu conteúdo e permita o conexão através dessa chave.

    ssh-add ~/.ssh/id_ed25519

 Caso seja uma chave rsa:

    ssh-add ~/.ssh/id_rsa

Tendo criado as duas chaves, uma pública e a outra privada, a pública será usada na conta do Github e a outra ficará na máquina do usuário e em conjunto elas permitirão a comunicação com o Github.com.

Para adicionar a chave pública primeiro abrimos o arquivo com o seguinte comando:

   gedit ~/.ssh/id_rsa.pub

Depois copiamos o seu conteúdo para a área de transferência do sistema operacional. Esta chave será inserida na conta do Github no menu Settings > Access > SSH and GPG keys > New SSH key.

Damos uma nome pra essa chave e colamos o conteúdo dela na área disponível e clicamos em "Add ssh key".

Tendo feito essas configurações, podemos testar a conexão com a conta através desse comando:

    ssh -T git@github.com

É recomendável indicar a porta 443 para nos conectarmos tal como no seguinte comando no terminal:

     ssh -T -p 443 git@ssh.github.com

Se tiver tudo certo, nos será retornado a seguinte mensagem:

    Hi xxxx! You've successfully authenticated, but GitHub does not provide     shell access. 

Contudo, ainda não será possível realizar a conexão sem a indicação da porta e para corrigir este problema, uma soluação seria criar um arquivo config no diretório ~/.ssh/ e nele adicionar os parâmetros como host, hostname e porta que serão usados durante a conexão.

No caso do arquivo config não existir, basta digitar o seguinte comando no terminal que o próprio sistema ira criar um novo no diretório.

    gedit ~/.ssh/config

E com o arquivo config já criado, inserimos os seguintes parâmetros no arquivo, salvando esses dados e em seguinda fechando o arquivo.

Host github.com
HostName ssh.github.com
User git
Port 443
              IdentityFile ~/.ssh/id_ed25519

Se estive usando uma chave RSA:

Host github.com
HostName ssh.github.com
User git
Port 443
IdentityFile ~/.ssh/id_rsa

Um ultima alteração a ser feita é  configurar o Git para usar o SSH nas URLs do Github:

    git remote set-url origin git@github.com:username/repository.git
 

Por fim, após realizar todos esses procedimento, já podemos utilizar a conexão SSH para nos conectarmos ao github fazendo um pull ou um push para o repositório remoto.


Comentários

Postagens mais visitadas