Como parar o github sempre pedindo nome de usuário / senha?

2

Eu tenho minhas chaves em ~/.ssh/ e em outros computadores eu posso empurrar e puxar do repositório em questão.
Por que em um computador eu sempre preciso inserir meu nome de usuário / senha do github, mas não em outros?

O que eu poderia mudar para evitar isso e usar minhas chaves ssh?

    
por Michael Durrant 03.06.2017 / 21:54

2 respostas

2

Isso pode ser alterado alterando o método do protocolo de autenticação de https para ssh

Uma opção seria renomear ou excluir o repositório existente e, em seguida, "reclinar" com o método diferente. Então, depois de mv ing ou rm -r ing o repositório atual, o comando clone será algo como

git clone [email protected]:user_name/repo_name.git

Você pode ver a diferença nas duas abordagens com o comando git config -l :

Para https:

...
remote.origin.url=https://github.com/user_name/repo_name.git
...

Para ssh

...
[email protected]:user_name/repo_name.git
branch.master.rebase=true  # This was also created in the ssh method

...

Você pode ver a diferença no arquivo .git/config de cada repositório:

Observe a alteração em 'url' abaixo. Além disso, a adição de rebase = true em ssh

link

[core]
  repositoryformatversion = 0 
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]
  url = https://github.com/user_name/repo_name.git
  fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
  remote = origin
  merge = refs/heads/master

ssh

[core]
  repositoryformatversion = 0 
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]
  url = [email protected]:user_name/repo_name.git
  fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
  remote = origin
  merge = refs/heads/master
  rebase = true

Portanto, se você quiser apenas alterar o método de autenticação sem 'reclonar' o repositório inteiro, basta editar os projetos .git/config e alterar

  url = [email protected]_name/repo_name.git

para

  url = https://github.com/user_name/repo_name.git

mais adicionar

rebase = true

na parte inferior, na seção " [branch "master"] "

    
por 03.06.2017 / 21:54
0

A maneira mais fácil é criar um arquivo ~/.netrc com o seguinte conteúdo:

machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD

(como mostrado aqui: link )

Você pode até mesmo fechar as permissões deste arquivo para que ninguém possa ler sua senha digitando:

chmod 600 ~/.netrc
    
por 05.09.2018 / 01:37

Tags