Jak wyłączyć monity o hasło podczas wykonywania git push / pull?

35

Za każdym razem, gdy chcę pushi / lub pullz terminala (w systemie Linux) muszę wprowadzić hasło. Jak usunąć to, aby ciągnęło i / lub wypychało bez hasła?

wir
źródło
5
Jakiego protokołu używa Twój adres repo? ssh? https?
VonC

Odpowiedzi:

23

Wygeneruj parę kluczy prywatny / publiczny dla uwierzytelnienia bez hasła.

W systemie Linux klucze są przechowywane ~/.ssh.

Jeśli masz już pliki ~/.ssho nazwie id_rsai id_rsa.pub, to masz już parę kluczy. Dołącz zawartość swojego klucza publicznego (to jest id_rsa.pub) do pliku ~ / .ssh / Author_keys repozytorium Git.

$ scp ~/.ssh/id_rsa.pub [email protected]:id_rsa.tmp
$ ssh [email protected]
$ cat id_rsa.tmp >> .ssh/authorized_keys

Jeśli nie masz pary kluczy, wygeneruj ją za pomocą

$ ssh-keygen -t rsa

Przeczytaj to, aby uzyskać dalsze instrukcje: http://inchoo.net/tools-frameworks/how-to-generate-ssh-keys-for-git-authorization/

Jin
źródło
@slhck Ah, nie myślałem o tym! Dobrze będzie wiedzieć, że system operacyjny korzysta z wirowania przed opublikowaniem dalszych instrukcji.
Jin
Dzięki za wskaźnik. Odpowiednio zaktualizowałem pytanie!
whirlwin
1
Kiedy uruchamiam pierwsze polecenie, otrzymuję: Wygląda na to, że używasz ssh do sklonowania adresu URL git: //. Upewnij się, że opcja konfiguracji core.gitProxy i zmienna środowiskowa GIT_PROXY_COMMAND NIE są ustawione. utracone połączenie
MultiformeIngegno
26

Biegać

git config credential.helper store

Spowoduje to przechowywanie poświadczeń w folderze w katalogu głównym. Musisz uruchomić git pull / push po tym poleceniu i podać nazwę użytkownika / pwd po raz pierwszy. Opublikuj to, nie będzie monitował o użytkownika / pwd. Szczegóły na https://git-scm.com/docs/git-credential-store

piorun
źródło
4
należy to wybrać jako prawidłową odpowiedź na to pytanie. IMO, OP chciał zapytać o rozwiązanie pozwalające httpsuniknąć konieczności ciągłego wprowadzania nazwy użytkownika / hasła, bez przełączania się na sshrozwiązanie. 1+ dla tej odpowiedzi.
Giang Nguyen
1
Pamiętaj, że pomocnik przechowywania referencji przechowuje hasło na dysku w postaci niezaszyfrowanej.
0xc0de
6

Możesz także zmienić hasło i zastąpić je pustym ciągiem:
ssh-keygen -p

wycierać
źródło
3
czy to nie jest bardzo złe? ponieważ nie będzie już żadnych zabezpieczeń
Tytus
3
Dziękuję Ci. Jest to poprawka dla osób, które mają konfigurację klucza SSH, ale nie są pewni, dlaczego nadal muszą wprowadzić hasło.
Cory Danielson,
użycie ssh-agent jest bezpieczniejszą alternatywą. superuser.com/questions/426749/ssh-agent-and-ssh-add
Jay R. Wren
1

Utworzyłem nowy oddział, a następnie, gdy ciągnę, musiałem wprowadzić nazwę użytkownika i hasło. Następnie rozwiązuję problem, ponownie klonując gałąź z adresem ssh (który znajduje się na odpowiedniej stronie repozytorium).

Na przykład:

git clone [email protected]:sshare/GLE.git
rj45
źródło