Chcę używać funkcji push i pull automatycznie w GitExtension , bez podawania mojego użytkownika i hasła za każdym razem.
Jak mogę zapisać swoje dane uwierzytelniające w git?
git
credentials
git-config
Edson Cezar
źródło
źródło
Odpowiedzi:
Biegać
następnie
podaj nazwę użytkownika i hasło, a dane te zostaną zapamiętane później. Poświadczenia są przechowywane w pliku na dysku, z uprawnieniami do dysku „tylko do odczytu / zapisu przez użytkownika”, ale nadal w postaci zwykłego tekstu.
Jeśli chcesz zmienić hasło później
Nie powiedzie się, ponieważ hasło jest niepoprawne, git następnie usuwa użytkownika naruszającego hasło + hasło z
~/.git-credentials
pliku, więc teraz uruchom ponownieaby podać nowe hasło, aby działało jak wcześniej.
źródło
Możesz użyć,
git config
aby włączyć przechowywanie poświadczeń w git.Podczas uruchamiania tego polecenia przy pierwszym pobieraniu lub wypychaniu ze zdalnego repozytorium zostaniesz zapytany o nazwę użytkownika i hasło.
Następnie, w celu dalszej komunikacji ze zdalnym repozytorium, nie musisz podawać nazwy użytkownika i hasła.
Format przechowywania to
.git-credentials
plik przechowywany w postaci zwykłego tekstu.Możesz także użyć innych pomocników do
git config credential.helper
pamięci podręcznej, a mianowicie:co trwa opcjonalnie
timeout parameter
, określając, jak długo poświadczenia będą przechowywane w pamięci. Za pomocą pomocnika poświadczenia nigdy nie dotkną dysku i zostaną usunięte po upływie określonego czasu.default
Wartość jest900 seconds (15 minutes).
OSTRZEŻENIE : Jeśli użyjesz tej metody, hasła do konta git zostaną zapisane w
plaintext
formacieglobal .gitconfig file
, np. W systemie Linux będzie to/home/[username]/.gitconfig
Jeśli jest to dla Ciebie niepożądane, użyj
ssh key
zamiast tego dla swojego konta.źródło
git config credential.helper cache
przypadku haseł nie zostaną zapisane w pliku, tylko przechowywane w pamięci. Zobacz: git-scm.com/docs/git-credential-cacheZalecana i bezpieczna metoda: SSH
Utwórz klucz sith Github. Przejdź do github.com -> Ustawienia -> Klucze SSH i GPG -> Nowy klucz SSH. Teraz zapisz swój klucz prywatny na swoim komputerze.
Następnie, jeśli klucz prywatny zostanie zapisany jako id_rsa w katalogu ~ / .ssh / , dodajemy go do uwierzytelnienia jako taki:
Bardziej bezpieczna metoda: buforowanie
Możemy użyć git-credential-store do buforowania naszej nazwy użytkownika i hasła przez pewien czas. Po prostu wprowadź następujące dane w interfejsie CLI (terminal lub wiersz poleceń):
Możesz również ustawić limit czasu (w sekundach) jako taki:
Jeszcze mniej bezpieczna metoda
Można także użyć Git-credential-store, ale zapisuje hasła w postaci zwykłego pliku tekstowego na dysku:
Nieaktualna odpowiedź - Szybka i niepewna
Jest to niepewna metoda przechowywania hasła w postaci zwykłego tekstu. Jeśli ktoś przejmie kontrolę nad twoim komputerem, twoje hasło zostanie ujawnione!
Możesz ustawić swoją nazwę użytkownika i hasło w następujący sposób:
źródło
Włącz pomocnika poświadczeń, aby Git zapisał twoje hasło na pewien czas:
W Terminalu wprowadź następujące dane:
Domyślnie Git będzie buforować twoje hasło przez 15 minut.
Aby zmienić domyślny limit czasu pamięci podręcznej haseł, wprowadź następujące dane:
Z pomocy GitHub
źródło
cache
część nastore
. Tak, pełna komenda będzie:git config --global credential.helper store
. Pamiętaj, że spowoduje to przechowywanie Twojego hasła w pliku tekstowym (bez szyfrowania, że tak powiem).--timeout
parametru?Możesz edytować
~/.gitconfig
plik, aby zapisać swoje dane uwierzytelniająceKtóre powinny już mieć
Powinieneś dodać na dole tego pliku.
Powodem, dla którego zalecam tę opcję, jest to, że jest globalna i jeśli w dowolnym momencie musisz usunąć opcję, wiesz, gdzie się udać i ją zmienić.
WYKORZYSTUJ TĄ OPCJĘ TYLKO W KOMPUTERZE OSOBISTYM.
Potem kiedy pociągniesz | klon | wpisz hasło git, ogólnie hasło zostanie zapisane w
~/.git-credentials
formacieGDZIE DOMAIN.XXX MOŻE BYĆ GITHUB.COM | BITBUCKET.ORG | INNY
Zobacz dokumenty
Uruchom ponownie terminal.
źródło
Wystarczy wpisać swoje dane uwierzytelniające w adresie URL w następujący sposób:
Możesz przechowywać go w następujący sposób:
... przykład użycia :
Teraz jest lista aliasów adresów URL:
git remote -v
... i że polecenie usunięcia jednego z nich:
git remote rm myrepo
źródło
[email protected]:Username/myRepo.git
https
, ale niessh
, więc takie rozwiązanie może być przydatne. Pamiętaj też, że możesz użyć tokena oauth, który jest nieznacznie bezpieczniejszy niż hasło do GitHub.W celu ustawienia globalnego otwórz terminal (z dowolnego miejsca) uruchom następujące polecenie:
W ten sposób wszelkie lokalne repozytorium git, które masz na swoim komputerze, wykorzysta te informacje.
Możesz indywidualnie skonfigurować dla każdego repozytorium, wykonując:
uruchom następujące:
Wpływa tylko na ten folder (ponieważ twoja konfiguracja jest lokalna).
źródło
--local
tag, ale znowu nic się nie dziejeMożesz użyć git-credential-store do przechowywania haseł niezaszyfrowanych na dysku, chronionych tylko przez uprawnienia systemu plików.
Przykład
Możesz sprawdzić poświadczenia zapisane w pliku
~/.git-credentials
Aby uzyskać więcej informacji, odwiedź git-credential-store - Pomocnik do przechowywania poświadczeń na dysku
źródło
Będziesz bardziej bezpieczny, jeśli użyjesz uwierzytelniania SSH niż uwierzytelnianie nazwy użytkownika / hasła.
Jeśli używasz komputera Mac, uwierzytelnianie klienta SSH jest zintegrowane z pękiem kluczy systemu MacOS. Po utworzeniu klucza SSH wpisz w swoim terminalu:
Spowoduje to dodanie prywatnego klucza SSH do pęku kluczy MacOS. Klient git użyje ssh podczas łączenia się ze zdalnym serwerem. Dopóki zarejestrujesz swój klucz publiczny ssh na serwerze, nic ci nie będzie.
źródło
SSH
. Korzystając z uwierzytelniania HTTP, ktoś, kto ukradnie poświadczenia, będzie miał dostęp tylko doGitHub/GitLab
. Również tokeny mają ograniczoną żywotność.Po przejrzeniu kilkudziesięciu postów SO, blogów itp. Wypróbowałem każdą metodę i oto, co wymyśliłem. Obejmuje WSZYSTKO.
The Vanilla DevOps Git Credentials & Private Packages Cheatheet
Są to wszystkie sposoby i narzędzia, za pomocą których możesz bezpiecznie uwierzytelnić git, aby sklonować repozytorium bez interaktywnego monitu o hasło .
Srebrna Kula
Chcesz Just Works ™? To jest magiczna srebrna kula.
Zdobądź token dostępu (zobacz sekcję w cheatheet, jeśli potrzebujesz instrukcji Github lub Gitea) i ustaw go w zmiennej środowiskowej (zarówno dla lokalnego dewelopera, jak i wdrożenia):
W przypadku Github skopiuj i uruchom te wiersze dosłownie :
Gratulacje, teraz żadne automatyczne klonowanie repozytoriów git nie będzie blokowane pytaniem o hasło, zarówno przy użyciu https, jak i dowolnego stylu ssh url.
Nie używasz Github?
W przypadku innych platform (Gitea, Github, Bitbucket) wystarczy zmienić adres URL. Nie zmieniaj nazw użytkowników (chociaż są one arbitralne, są potrzebne do odrębnych wpisów konfiguracji).
Zgodność
Działa to lokalnie w MacOS, Linux, Windows (w Bash), Docker, CircleCI, Heroku, Akkeris itp.
Więcej informacji
Zobacz sekcję „.gitconfig Zamiast tego” w ściągance.
Bezpieczeństwo
Zobacz sekcję „Bezpieczeństwo” ściągawki.
źródło
git config --global credential."https://somegithost.com".username MyUserName
, co jest w twojej Cheatsheet, ale nie gdziekolwiek indziej w tym wątku odpowiedzi. To konkretne rozwiązanie nie odpowiada na pytanie PO, ale odpowiedziało na moje, więc dziękuję!W takim przypadku potrzebujesz pomocnika git, aby powiedzieć gitowi, aby zapamiętał twoje hasło i nazwę użytkownika GitHub za pomocą następującego wiersza poleceń:
a jeśli używasz repozytorium przy użyciu klucza SSH, potrzebujesz klucza SSH do uwierzytelnienia.
źródło
Żadna z powyższych odpowiedzi nie działała dla mnie. Ciągle otrzymuję następujący każdym razem chciałem
fetch
lubpull
:Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Dla komputerów Mac
Byłem w stanie powstrzymać to przed pytaniem o moje hasło:
vi ~/.ssh/config
UseKeychain yes
:wq!
Dla Windowsa
Udało mi się go uruchomić, korzystając z informacji z tej wymiany stosów: https://unix.stackexchange.com/a/12201/348665
źródło
Oprócz edycji
~/.gitconfig
pliku możesz to zrobić, jeśli zapytasz:lub
Uwaga: zawsze używaj pojedynczych cudzysłowów:
lub
Twoja nazwa użytkownika i hasło mogą zawierać niektóre znaki, które złamałyby hasło, jeśli użyjesz podwójnego cudzysłowu.
--local
lub--global
oznacza, że parametry konfiguracji są zapisywane dla projektu lub dla użytkownika systemu operacyjnego.źródło
po prostu użyj
i wykonaj polecenie git pull , poprosi o nazwę użytkownika i hasło, odtąd nie będzie wyświetlał monitu o nazwę użytkownika i hasło, będzie przechowywać szczegóły
źródło
Przechowuj nazwę użytkownika i hasło w .git-credentials
.git-credentials
to miejsce, w którym twoja nazwa użytkownika i hasło (token dostępu) są przechowywane podczas uruchamianiagit config --global credential.helper store
, co sugerują inne odpowiedzi, a następnie wpisz swoją nazwę użytkownika i hasło lub token dostępu:Aby zapisać nazwę użytkownika i hasło (token dostępu):
Jest to bardzo przydatne dla robota github, np. W celu rozwiązania automatycznych kompilacji Chain w tym samym repozytorium dokerów , posiadając reguły dla różnych gałęzi, a następnie wyzwalając je, popychając je w
post_push
hooker w hubie dokera.Przykład tego można zobaczyć tutaj w Stackoverflow.
źródło
Szybki sposób na buforowanie referencji git:
miło i bezpiecznie
limit czasu jest w sekundach.
źródło
Po przeczytaniu całego wątku i eksperymentowaniu z większością odpowiedzi na to pytanie, w końcu znalazłem procedurę, która działa dla mnie. Chcę się nim podzielić na wypadek, gdyby ktoś miał do czynienia ze złożonym przypadkiem użycia, ale nadal nie chcę przechodzić przez pełny wątek i strony podręcznika gitcredentials , gitcredentials-store itp., Tak jak ja.
Znajdź poniżej procedurę Sugeruję, JEŚLI (jak ja) masz do czynienia z kilkoma repozytoriami od kilku dostawców (GitLab, GitHub, Bitbucket itp.), Używając kilku różnych kombinacji nazwy użytkownika i hasła. Jeśli zamiast mieć tylko jedno konto do pracy, to może być lepiej zatrudniając
git config --global credential.helper store
lubgit config --global user.name "your username"
itd rozwiązań, które zostały bardzo dobrze wyjaśnione w poprzednich odpowiedziach.Moje rozwiązanie:
> git config --global --unset credentials.helper
> cd /path/to/my/repo
> git config --unset credential.helper
> git config credential.helper 'store --file ~/.git_repo_credentials'
Uwaga : to polecenie tworzy nowy plik o nazwie „.git_repo_credentials” w twoim katalogu domowym, w którym Git przechowuje twoje dane uwierzytelniające. Jeśli nie określisz nazwy pliku, Git użyje domyślnego „.git_credentials”. W takim przypadku wystarczy wydać następujące polecenie:
> git config credential.helper store
git config credential.*.username my_user_name
Uwaga : użycie „*” jest zwykle poprawne, jeśli Twoje repozytoria pochodzą od tego samego dostawcy (np. GitLab). Jeśli zamiast tego Twoje repozytoria są hostowane przez różnych dostawców, sugeruję jawne ustawienie linku do dostawcy dla każdego repozytorium, jak w poniższym przykładzie (dla GitLab):
git config credential.https://gitlab.com.username my_user_name
W tym momencie, jeśli
git pull
wydasz polecenie wymagające poświadczeń (np. ), Zostaniesz poproszony o hasło odpowiadające „moja_nazwa_użytkownika”. Jest to wymagane tylko raz, ponieważ git przechowuje dane uwierzytelniające na „.git_repo_credentials” i automatycznie używa tych samych danych przy kolejnych dostępach.źródło
Od komentarza rifrol na Linux Ubuntu, od tej odpowiedzi , oto jak w Ubuntu:
Niektóre inne dystrybucje dostarczają plik binarny, więc nie musisz go budować.
W OS X zazwyczaj jest „zbudowany” z domyślnym modułem „osxkeychain”, więc dostajesz go za darmo.
źródło
Sprawdź oficjalną dokumentację git:
https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
źródło