Mam usługę automatycznego budowania, która pobiera z prywatnego repozytorium git. Problem polega na tym, że gdy próbuje sklonować repozytorium, musi podać hasło, ponieważ nie jest ono zapamiętywane; więc ponieważ nie ma interakcji z człowiekiem, zawsze czeka na hasło. Jak mogę zmusić go do zapamiętania z id_rsa.pub?
125
eval $(ssh-agent)
Zamiast tego musiałem napisać .ssh-add ~/.ssh/myfile_rsa
copy > ~/.bashrc
w git bash, aby utworzyć plik bashrc w systemie Windows, zignoruj błądTa odpowiedź wyjaśnia, jak sprawić, aby nazwa użytkownika i hasło GitHub były przechowywane na stałe, a nie hasło klucza SSH.
W systemie Windows po prostu uruchom
Oznacza to, że następnym razem, gdy naciśniesz, wpiszesz swoją nazwę użytkownika i hasło jak zwykle, ale zostaną one zapisane w poświadczeniach systemu Windows. Po tym nie będziesz musiał ponownie do nich wchodzić.
Podobnie jak w przypadku, Push to GitHub bez wprowadzania nazwy użytkownika i hasła za każdym razem (Git Bash w systemie Windows) .
źródło
git
zmieni swoje zachowanie zgodnie z ustawioną dyrektywą konfiguracyjną.Wolę nie wpisywać hasła SSH podczas otwierania nowych terminali; niestety rozwiązanie starmonkey wymaga wpisywania hasła przy każdej sesji. Zamiast tego mam to w swoim
.bash_profile
pliku:To zapamięta również moje hasło do nowych sesji terminala; Muszę go wpisać tylko raz, kiedy otwieram mój pierwszy terminal po uruchomieniu.
Chciałbym przyznać, skąd to mam; to modyfikacja cudzej pracy, ale nie pamiętam, skąd się wzięła. Dzięki anonimowemu autorowi!
Aktualizacja 2019-07-01: Nie sądzę, że to wszystko jest konieczne. Teraz konsekwentnie działam, upewniając się, że w moim
.bash_profile
pliku działa ssh-agent:Następnie ustawiłem taki
ssh
plik konfiguracyjny:źródło
Jeśli dobrze rozumiem pytanie, używasz już autoryzowanego klucza SSH w usłudze kompilacji, ale chcesz uniknąć konieczności wpisywania hasła dla każdego klonu?
Przychodzą mi do głowy dwa sposoby, aby to zrobić:
Jeśli usługa kompilacji jest uruchamiana interaktywnie: przed uruchomieniem usługi kompilacji zacznij
ssh-agent
od wystarczająco długiego limitu czasu (-t
opcja). Następnie użyjssh-add
(msysGit powinien je mieć), aby dodać wszystkie potrzebne klucze prywatne przed uruchomieniem usługi kompilacji. Nadal musiałbyś wpisać wszystkie hasła, ale tylko raz na uruchomienie usługi.Jeśli chcesz w ogóle uniknąć konieczności wpisywania haseł, zawsze możesz usunąć hasła z kluczy SSH, jak opisano w /server/50775/how-do-i-change-my- private-key-passphrase , ustawiając puste nowe hasło. Powinno to całkowicie wyeliminować monit o hasło, ale jest jeszcze mniej bezpieczne niż poprzednia opcja.
źródło
Kiedy próbowałem przesłać kod, otrzymałem poniższy błąd:
Po kilku godzinach poszukiwań stwierdziłem, że muszę użyć następującego polecenia:
Po wykonaniu powyższego polecenia otrzymałem monit o wprowadzenie mojej nazwy użytkownika i hasła GitHub. Po podaniu prawidłowych danych uwierzytelniających jestem w stanie przesłać kod.
źródło
Właściwe rozwiązanie to:
Uruchom domyślny terminal Windows - cmd i pobierz katalog swojego głównego profilu
Uruchom Git Bash w powyższym katalogu i utwórz
.bashrc
plik za pomocą poleceniaOtwórz
.bashrc
plik za pomocą ulubionego edytora tekstu i wklej kod z Pomocy GitHub do tego pliku:Uruchom ponownie Git Bash i zapyta Cię o hasło (tylko za pierwszym razem) i gotowe. Żadne hasło nie przeszkadza ponownie.
źródło
Musisz utworzyć
authorized_keys
plik w.ssh
folderze użytkownika, pod którym będziesz się łączyć z serwerem repozytorium. Na przykład, przy założeniu korzystania z nazwy użytkownikabuildservice
narepo.server
można uruchomić:Następnie musisz sprawdzić następujące rzeczy:
Ten odpowiedni
id_rsa
klucz prywatny jest przedstawiony w pliku[email protected]:~/.shh/id_rsa
.Ten odcisk palca repo.server jest przechowywany w
[email protected]:~/.ssh/known_hosts
pliku. Zwykle zostanie to zrobione po pierwszej próbiessh
połączenia się zrepo.server
.źródło
cat id_rsa.pub > .ssh/authorized_keys
spowoduje nadpisanie wszystkich istniejących autoryzowanych kluczy. Służy>>
do dodawania zamiast nadpisywania.