Możesz uniknąć konieczności wpisywania hasła, jeśli uruchomisz agenta ssh. Za pierwszym razem, gdy wykonujesz polecenie git pull, robisz to interaktywnie, a agent ssh zapamięta twój klucz prywatny i możesz uruchomić git pull bez pytania.
Tim Finer,
Odpowiedzi:
162
Nie jest to dokładnie to, o co prosiłeś, ale dla http (s):
możesz umieścić hasło w pliku .netrc (_netrc w systemie Windows). Stamtąd byłby automatycznie odbierany. Przeszedłby do twojego folderu domowego z 600 uprawnieniami.
możesz też po prostu sklonować repozytorium, https://user:pass@domain/repoale nie jest to zalecane, ponieważ pokazałoby użytkownika / przepustkę w wielu miejscach ...
nową opcją jest użycie pomocnika poświadczeń . Zauważ, że poświadczenia będą przechowywane w postaci zwykłego tekstu w lokalnej konfiguracji przy użyciu standardowego pomocnika poświadczeń. credential-helper z wincred może być również używany w systemie Windows.
Przykłady użycia pomocnika poświadczeń
git config credential.helper store - przechowuje dane uwierzytelniające na czas nieokreślony.
git config credential.helper 'cache --timeout=3600'- przechowuje przez 60 minut
W przypadku dostępu opartego na ssh należy użyć agenta ssh, który dostarczy klucz ssh w razie potrzeby. Wymagałoby to wygenerowania kluczy na komputerze, przechowywania klucza publicznego na serwerze zdalnym i dodania klucza prywatnego do odpowiedniego magazynu kluczy.
Czy możesz rozwinąć część dotyczącą SSH? Konfiguruję instancję EC2 i chciałbym, aby ściągała bez żądania hasła i automatycznego skalowania AWS. Ten publiczno-prywatny schemat wygląda na dobre rozwiązanie.
Pedro Dusso
1
@PedroDusso brzmi tak, jakby ten wątek był tym, czego szukasz
eis
2
Skończyłem z mechanizmem wdrażania kluczy, który wydaje się być dobrym rozwiązaniem. Dzięki!
Pedro Dusso
129
Znalazłem jeden sposób na podanie poświadczeń dla połączenia https w wierszu poleceń. Wystarczy podać pełny adres URL do git pull i dołączyć tam poświadczenia:
Nie musisz wcześniej klonować repozytorium z poświadczeniami, oznacza to, że twoje poświadczenia nie trafiają do .git/config. (Ale upewnij się, że twoja powłoka cię nie zdradzi i przechowuje wiersz poleceń w pliku historii).
hasło nie jest wymagane, a zapisywanie hasła w ten sposób nie jest bezpieczne
meteor
czy nie jest to jedna z rzeczy, które wymieniłem w zaakceptowanej odpowiedzi już w 2012 roku?
eis
8
@eis: Niezupełnie. Chodzi o to, że nie musisz klonować repozytorium za pomocą adresu URL zawierającego poświadczenia, ale nadal możesz pobrać z adresu URL z poświadczeniami. Efekt jest taki, że poświadczenia nie trafiają do pliku .git / config.
holgero
5
Jeśli pominiesz :passwordczęść, po naciśnięciu Enter zostaniesz poproszony o podanie hasła. W ten sposób Twoje hasło nie zostanie zapisane w historii bash.
Nie odpowiada bezpośrednio na pytanie, ale znalazłem to pytanie, szukając sposobu, aby zasadniczo nie wprowadzać ponownie hasła za każdym razem, gdy uruchamiam zdalny serwer .
Cóż, gitpozwala na przechowywanie danych uwierzytelniających w pamięci podręcznej przez określony czas. Można go dostosować w programie, git configa ta strona bardzo dobrze to wyjaśnia:
Poniższy cmd zadziała, jeśli nie mamy @ w haśle:
git pull https://username:pass@[email protected]/my/repository
Jeśli masz @ w haśle, zamień je na% 40, jak pokazano poniżej:
git pull https://username:pass%[email protected]/my/repository
Odpowiedzi:
Nie jest to dokładnie to, o co prosiłeś, ale dla http (s):
https://user:pass@domain/repo
ale nie jest to zalecane, ponieważ pokazałoby użytkownika / przepustkę w wielu miejscach ...Przykłady użycia pomocnika poświadczeń
git config credential.helper store
- przechowuje dane uwierzytelniające na czas nieokreślony.git config credential.helper 'cache --timeout=3600'
- przechowuje przez 60 minutW przypadku dostępu opartego na ssh należy użyć agenta ssh, który dostarczy klucz ssh w razie potrzeby. Wymagałoby to wygenerowania kluczy na komputerze, przechowywania klucza publicznego na serwerze zdalnym i dodania klucza prywatnego do odpowiedniego magazynu kluczy.
źródło
Znalazłem jeden sposób na podanie poświadczeń dla połączenia https w wierszu poleceń. Wystarczy podać pełny adres URL do git pull i dołączyć tam poświadczenia:
Nie musisz wcześniej klonować repozytorium z poświadczeniami, oznacza to, że twoje poświadczenia nie trafiają do
.git/config
. (Ale upewnij się, że twoja powłoka cię nie zdradzi i przechowuje wiersz poleceń w pliku historii).źródło
:password
część, po naciśnięciu Enter zostaniesz poproszony o podanie hasła. W ten sposób Twoje hasło nie zostanie zapisane w historii bash.Nie odpowiada bezpośrednio na pytanie, ale znalazłem to pytanie, szukając sposobu, aby zasadniczo nie wprowadzać ponownie hasła za każdym razem, gdy uruchamiam zdalny serwer .
Cóż,
git
pozwala na przechowywanie danych uwierzytelniających w pamięci podręcznej przez określony czas. Można go dostosować w programie,git config
a ta strona bardzo dobrze to wyjaśnia:https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
W terminalu uruchom:
Aby dostosować limit czasu pamięci podręcznej, możesz wykonać:
Twoje poświadczenia będą następnie przechowywane w pamięci przez żądany czas.
źródło
Zwróć uwagę, że sposób, w jaki pomocnik poświadczeń git przechowuje niezaszyfrowane hasła, zmienia się w Git 2.5+ (drugi kwartał 2014).
Zobacz commit 17c7f4d autorstwa Junio C Hamano (
gitster
)Doktor mówi teraz:
źródło
Poniższy cmd zadziała, jeśli nie mamy @ w haśle:
git pull https://username:pass@[email protected]/my/repository
Jeśli masz @ w haśle, zamień je na% 40, jak pokazano poniżej:git pull https://username:pass%[email protected]/my/repository
źródło