Simplificando o Acesso ao seu Repositório Privado do GitHub
Para nós, programadores, repetir a mesma tarefa pode ser monótono e frustrante, concorda? Uma dessas tarefas, que envolve interação constante com repositórios privados no GitHub, frequentemente se torna um incômodo. Se você chegou a este artigo, provavelmente está buscando uma solução para simplificar esse processo. Boas notícias: sua busca termina aqui!
Vamos explorar como acessar um repositório privado no GitHub sem a necessidade constante de senhas. Sem mais delongas, vamos direto ao ponto.
Existem, basicamente, duas formas de acessar um repositório no GitHub: utilizando HTTPS ou SSH. A maioria de nós acaba usando HTTPS, mas para clonar repositórios privados, essa não é a opção mais eficiente.
O acesso ao repositório abrange diversas ações como clonagem, push, pull e outras que envolvem a atualização do seu repositório remoto. Embora não haja problemas ao lidar com repositórios públicos, a autenticação é fundamental para acessar repositórios privados. E existem várias maneiras de realizar essa autenticação.
Começaremos com a mais comum…
Acessando com HTTPS
Se você está familiarizado com o método HTTPS e está buscando alternativas, vamos rapidamente revisitar como acessar um repositório privado usando esse método:
- Copie o link do seu repositório privado.
Repositório Privado do GitHub
- Abra o terminal ou cmd no seu computador.
- Use o comando
git clone
, colando o link do seu repositório privado. - Substitua o link de exemplo pelo link do seu repositório.
- O sistema solicitará autenticação, exigindo que você insira suas credenciais do GitHub.
- Primeiro, será necessário digitar seu nome de usuário do GitHub e pressionar Enter.
Nome de usuário de autenticação
- Em seguida, será a vez da sua senha. Digite sua senha do GitHub e pressione Enter.
Pronto! O repositório privado foi clonado usando HTTPS. Agora, faça uma alteração no repositório, confirme e envie as atualizações para o repositório remoto.
O que você percebeu?
O sistema solicita autenticação novamente.
Não é cansativo e repetitivo ter que inserir credenciais cada vez que você interage com o repositório privado?
Sim, é!
Não podemos continuar inserindo nossas credenciais do GitHub a cada interação com um repositório privado. É um processo lento e que atrapalha nosso fluxo de trabalho. Felizmente, existem várias soluções. A mais recomendada é o uso de SSH, mas vamos explorar todas as alternativas uma a uma.
Configuração do .git
O diretório .git armazena todas as informações sobre as versões de nossos repositórios. Trata-se de uma pasta oculta que contém um arquivo de configuração onde podemos ajustar as definições. No entanto, essa não é uma abordagem geralmente recomendada.
Uma forma de clonar um repositório privado é incluir seu nome de usuário e senha diretamente na URL do repositório, como mostrado abaixo:
git clone https://<strong>nome_de_usuario:senha</strong>@github.com/<strong>nome_de_usuario</strong>/<strong>nome_do_repositorio</strong>.git
Lembre-se de substituir as informações de exemplo com seus dados reais. Ao fornecer suas credenciais diretamente na URL, você evita a solicitação de autenticação.
Portanto, para acabar com a necessidade de autenticação repetitiva, vamos atualizar a configuração do repositório seguindo os passos abaixo:
- Abra a pasta .git no seu repositório clonado.
- Localize o arquivo chamado
config
e abra-o em um editor de texto de sua preferência. - Haverá uma linha contendo o link para o seu repositório, como no exemplo abaixo:
- Atualize a URL, incluindo seu nome de usuário e senha, conforme o exemplo anterior.
Agora, faça mais uma alteração no repositório, confirme e envie as atualizações.
Notou algo?
Desta vez, o sistema não solicitou suas credenciais. Portanto, resolvemos o problema ao atualizar a configuração do repositório.
É importante notar que esse método não é seguro, pois expõe suas credenciais. Além disso, ele não funcionará se sua senha do GitHub contiver o caractere @. Devido a essas desvantagens críticas, vamos descartar essa opção e seguir para a próxima.
Auxiliar de Credenciais (credential.helper)
O credential.helper
permite o armazenamento permanente de suas credenciais no arquivo ~/.git-credentials
.
Suas credenciais serão armazenadas ao serem inseridas pela primeira vez, e o sistema não as solicitará novamente até que sejam armazenadas nesse arquivo. Vamos ver como essa opção funciona na prática.
- Primeiramente, ative o armazenamento de credenciais usando o comando
git config credential.helper store
. - Depois de ativar a opção, tente acessar o repositório privado, informando seu nome de usuário e senha.
- Após inserir suas credenciais, elas serão salvas no arquivo
~/.git-credentials
.
Agora, repita o processo para verificar o funcionamento. Faça uma alteração, confirme e envie. Se você seguiu os passos corretamente, o sistema não solicitará suas credenciais novamente.
E se você quiser salvar as credenciais por apenas 4 horas?
O credential.helper
também oferece a opção de armazenar as credenciais temporariamente. Utilizamos o cache para armazenar as credenciais por um período determinado.
Por padrão, o cache armazena as credenciais por 15 minutos. Após esse período, o git solicitará as credenciais novamente. No entanto, podemos ajustar esse tempo usando o seguinte comando:
git config credential.helper 'cache --timeout={tempo_em_segundos}'
Não se esqueça de especificar o tempo em segundos. Vamos ver um exemplo prático:
- Primeiro, ative o cache de credenciais com o comando
git config credential.helper cache
. - Acesse o repositório privado com seu nome de usuário e senha.
- Após a inserção das credenciais, o sistema irá armazená-las em cache pelo tempo especificado.
Agora, faça uma atualização, confirme e envie. O sistema não solicitará suas credenciais, pois elas estão em cache.
Mostramos como aplicar as configurações em um repositório já inicializado pelo git. Para aplicar as configurações globalmente em todos os projetos, basta adicionar o flag --global
aos comandos acima.
Tokens de Acesso Pessoal
Os tokens de acesso pessoal são usados para conceder acesso à API do GitHub e funcionam como tokens OAuth. Portanto, podem ser utilizados como alternativa à senha para autenticação com o git. Vamos entender como usar esses tokens.
- Acesse sua conta do GitHub.
- Vá para as Configurações.
- Na barra lateral esquerda, vá para as Configurações de Desenvolvedor.
- Clique em Tokens de Acesso Pessoal.
- Clique em Gerar Novo Token.
- Adicione uma nota para o token. Isso o ajudará a lembrar a finalidade do token.
- Defina as permissões do token. Programas que utilizam o token terão acesso às permissões selecionadas. Para o nosso caso, selecione
repo
.
- Clique no botão Gerar token no final da página.
- O token de acesso pessoal será exibido uma única vez. Copie-o e salve-o em um local seguro. Utilize um gerenciador de senhas, se necessário.
- Token de acesso pessoal criado com sucesso.
- Agora, é hora de utilizá-lo para acessar o repositório privado.
- Atualize a URL do repositório no arquivo
.git/config
parahttps://{personal_access_token}@github.com/hafeezulkareem/private_repository.git
, assim como no primeiro método.
Tente acessar o repositório privado novamente.
O sistema solicitou autenticação?
Não. Ele não pedirá autenticação enquanto o token estiver ativo. Vamos para a próxima solução.
SSH
SSH é mais uma forma de realizar a autenticação. Você pode encontrar mais informações sobre SSH na documentação do GitHub aqui.
A ideia é simples: gerar uma chave SSH, adicioná-la à sua conta do GitHub e aproveitar a autenticação sem a necessidade de senha.
Vamos ver essas três etapas em detalhes.
- Abra o terminal ou cmd.
- Use o comando
ssh-keygen -t rsa
para gerar uma nova chave SSH. - O sistema solicitará um diretório para salvar a chave. Pressione Enter para aceitar o diretório padrão. Se preferir, você pode alterar o diretório. Vamos seguir com o diretório padrão.
- Agora, você pode definir uma senha para proteger a sua chave SSH. Essa etapa é opcional.
- Se você escolher uma senha, terá que digitá-la sempre que ligar seu sistema.
- Se você não escolher uma senha, não precisará digitá-la.
- Digite a senha novamente para confirmá-la.
- Por fim, o sistema gerará uma nova chave SSH.
Uma nova chave SSH foi gerada com sucesso. Dois arquivos foram criados, um com extensão .pub e outro sem extensão. Caso tenha alterado o caminho padrão, os nomes dos arquivos podem variar.
Agora, vamos conectar a chave à sua conta do GitHub. Copie o conteúdo do arquivo .pub (no meu caso, id_rsa.pub
) para sua conta.
- Acesse sua conta do GitHub.
- Vá para Configurações.
- Clique em Chaves SSH e GPG.
- Clique em Nova chave SSH para adicionar a chave que acabamos de gerar.
- Você será direcionado para a seguinte tela.
- Adicione um título descritivo para sua chave SSH. Normalmente, as chaves SSH são específicas para cada sistema, então é uma boa prática incluir essa informação. No entanto, você pode escolher o título que preferir.
- Depois de escolher o título, copie e cole o conteúdo do arquivo .pub no segundo campo.
- Pressione o botão Adicionar SSH e confirme o acesso com a sua senha do GitHub.
- Sua chave SSH recém adicionada será exibida desta forma.
Adicionamos a chave SSH ao GitHub. Agora, precisamos autenticar a conexão SSH para aproveitar a autenticação sem senha no futuro. Para isso, digite o seguinte comando no terminal ou cmd:
ssh -T [email protected]
O sistema solicitará confirmação. Confirme, e pronto!
Agora, clone o seu repositório privado. O sistema não solicitará autenticação.
Faça uma alteração, confirme e envie. O sistema não solicitará mais autenticação. Aproveite!
Conclusão
Exploramos diversas formas de acessar repositórios privados sem precisar inserir suas credenciais o tempo todo. Você pode escolher qualquer um dos métodos, mas a abordagem mais recomendada e utilizada é o método SSH.
Novamente, a decisão é sua, não existe uma regra que obrigue o uso exclusivo do SSH. Entretanto, a maioria das empresas adota o SSH para autenticação, por ser seguro e poupar tempo. Não se esqueça de manter suas credenciais seguras.
Feliz desenvolvimento! 🙂