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.
Port 443
Se estive usando uma chave RSA:
Port 443
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
Postar um comentário