Como mudar um repositório Github para autenticação SSH

O Github oferece duas maneiras de autenticar com o seu repositório — por HTTPS com uma senha e por SSH usando chaves privadas. Embora ambos funcionem bem, se você quiser fazer a troca, precisará configurar seu repositório local para usar as novas credenciais.
Movendo para autenticação SSH
O padrão do Github é a autenticação HTTPS, usando a senha de sua conta do Github. Sempre que for clonar um repo, você terá que selecionar manualmente o “ SSH ” como opção para o URL clone, se você preferir usá-lo.
Embora SSH geralmente seja melhor para autenticar conexões para servidores Linux, o Github recomenda HTTPS porque é fácil para as pessoas e causa menos confusão. No entanto, é pior para a automação, não é tecnicamente tão seguro quanto uma chave RSA e pode ser um incômodo digitá-la todas as vezes, mesmo com armazenamento em cache de credenciais.
Para mudar é muito simples — você precisará criar uma nova chave SSH se você não tiver uma, adicione-a à sua conta e, em seguida, troque o seu repositório local para o novo endpoint se você &’ já clonado.
Primeiro, verifique se você já possui uma chave SSH. O padrão geralmente é armazenado aqui no Linux / macOS:
cat ~ / . ssh / id_rsa. pub
Publicidade
No Windows, depende do programa que você está usando. Às vezes, ele é armazenado em% HOMEDRIVE %% HOMEPATH% \. Ssh \, mas pode ser diferente com base no local de onde você está usando o Git. Na maioria dos casos, recomendamos o uso do Windows Subsystem For Linux (WSL), que funciona como uma VM e armazena a chave em um ambiente Linux tradicional.
Se você não tiver um, pode criar um com ssh-keygen:
ssh-keygen -t rsa -f ~ / . ssh / id_rsa
Assim que tiver a chave, vá para as configurações de usuário do Github em “ Chaves SSH e GPG, ” e cole o conteúdo de id_rsa. pub em uma nova chave.

Uma vez feito isso, você deve estar autenticado, desde que o Git esteja configurado para usar esta chave.
Trocando um repositório HTTPS para autenticação SSH
Se você clonou do Github usando HTTPS, seu repositório já estará vinculado ao Github usando aquela URL remota. Para corrigir isso, você precisará remover o HTTPS remoto, geralmente chamado de origem, e adicioná-lo de volta com o URI git @ github adequado que usa SSH.
git remote rm origin git remote add origin git@github. com: user / repo. git
Em seguida, empurre para a origem normalmente:
git fetch origin git push --set-upstream origin / master
Se você estiver clonando um novo repo, precisará apenas verificar se ele está definido como “ SSH ” no futuro, e que o URI seja configurado como git@github. com.

Usando uma chave SSH diferente
Se você tem várias chaves SSH que precisa usar, as coisas podem ficar complicadas, e é por isso que o Github recomenda senhas para iniciantes. Digamos que você clonou o repositório em seu desktop, mas depois deseja trabalhar em seu laptop. Você teria que adicionar uma nova chave à sua conta do Github ou transferir a chave para o laptop.
Publicidade
Se puder, você deve adicionar uma nova chave. O Github oferece suporte a vários deles por um motivo, e você pode dar nomes diferentes para organizá-los. Às vezes, porém, você terá apenas uma chave e precisará consertar as coisas do lado do cliente.
Se você deseja usar apenas a mesma chave, não há problema em transferir id_rsa e id_rsa. pub para a nova máquina. Mas, se essa máquina já tiver sua própria chave SSH, você precisará usar várias chaves.
Você pode fazer isso editando o arquivo de configuração de hosts SSH:
nano ~ / . ssh / config
Adicione dois blocos com nomes diferentes. Nesse caso de uso, é a configuração de chaves diferentes para uma conta pessoal e uma conta corporativa.
Nome do host pessoal github. com IdentityFile ~ / . ssh / githubpersonal IdentitiesSomente sim Host work Hostname github. com IdentityFile ~ / . ssh / githubwork IdentitiesSomente sim
Você precisará de duas chaves chamadas githubpersonal. pub e githubwork. pub, ou quaisquer nomes que você escolher dar a elas. Por último, você precisará remover o controle remoto novamente e adicioná-lo novamente, especificando o nome do bloco no arquivo de configuração do host (que pode não corresponder ao nome da chave):
git remote rm origin git remote add origin git @ personal: username / repository. git
Publicidade
Neste comando, “ pessoal ” está substituindo o nome do host, github. com, no URL. Isso é necessário porque o padrão de configuração do SSH é escolher uma chave com base no nome do host, que nos blocos pessoal e de trabalho é apenas github. com. Você deve especificar manualmente para que o Git possa selecionar o apropriado.
Nenhum comentário