Tortoisegit prosząc o hasło


84

Właśnie zacząłem pracować nad Gitem. Używam Windows 7 i zainstalowałem msysgit (1.7.8) i Tortoisegit (1.7.6). Repozytorium jest tworzone na serwerze Linux dostępnym przez sieć LAN. Problem, przed którym stoję, polega na tym, że nie jestem w stanie sklonować repozytorium za pomocą Tortoisegit, prosi o hasło i nie jestem pewien, o jakie hasło prosi. W tym samym czasie mogłem sklonować repozytorium za pomocą Git Gui i wykonać wszystkie operacje. Czy ktoś może mi pomóc w zrozumieniu, dlaczego Tortoisegit pyta o hasło, podczas gdy Git Gui tego nie robi. Próbowałem odinstalować Git i Tortoisegit, a następnie zainstalować ponownie, ale bez powodzenia.

Błąd Tortoisegit


Twój serwer git używa uwierzytelniania pubkey?
— Felix Yan

Na TYM SAMYM klonie repozytorium, co robi TortoiseGit i co robi Git GUI?
— manojlds

2
Kiedy klikniesz prawym przyciskiem myszy na Tortoise Git, kliknij Ustawienia. W Git jest link -> Remote, kliknij go. Z listy zdalnej kliknij źródło. Po prawej stronie zobaczysz URL. Zamiast Twojej nazwy użytkownika pod adresem URL wpisujesz: nazwa użytkownika: <twoje hasło>. Wreszcie, kiedy wykonasz operację git z Tortoise Git, zobaczysz, że nigdy nie pyta cię o hasło.
— kamaci

1
Czy używasz http URI zamiast SSH? To był mój problem
— gość z CAD

Dla "specjalnych" z nas (w tym mnie) pamiętaj, aby usunąć bit 'git clone' z przodu polecenia przed wklejeniem go do okna adresu URL okna Tortoise Git Clone - w przeciwnym razie otrzymasz podobne problemy
— icc97

Odpowiedzi:


131

Mój kolega rozwiązał problem. Kroki:

  1. Kliknij prawym przyciskiem myszy -> TortoiseGit -> Ustawienia -> Sieć
  2. Klient SSH wskazywał na C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
  3. Zmieniono ścieżkę do C:\Program Files (x86)\Git\bin\ssh.exe

Alternatywna ścieżka: C:\Users\...\AppData\Local\Programs\Git\usr\bin\ssh.exe


działa dla mnie z wersją żółwia 1.8.3 ... ten problem doprowadził mnie do szału !! na windowsXP @ 32-bitowy tortoisegit działa tylko z c: \ programmi \ git \ bin \ ssh.exe na Windows7 @ 64 działa dobrze z toirtoiseplink.exe (domyślnie)
— Evilripper

Na moim komputerze z systemem Windows 8 skierowanie klienta SSH do pliku msysGit ssh.exe działało, gdy zapytanie o hasło w ogóle się nie pojawiło. Inny problem, ale to rozwiązanie jest zdecydowanie warte wypróbowania dla kogoś, kto ma problemy z SSH z TortoiseGit
— Icermann

1
Mi to nie pomogło (przynajmniej łącząc się z GitHubem nie próbowałem innych repozytoriów).
— Suma

2
Dzięki, działało idealnie. Chociaż moje ssh.exekłamstwa znajdują się w moim katalogu użytkownikaC:\Users\...\AppData\Local\Programs\Git\usr\bin
— ppasler

7
Jak wspomniał @ppasler, ssh.exe znajduje się teraz w C: \ Program Files (x86) \ Git \ usr \ bin \ ssh.exe lub we wspomnianej lokalizacji, w zależności od instalacji.
— Vlad Schnakovszki

33

Jeśli musisz użyć nazwy użytkownika / hasła, istnieje znacznie prostsze rozwiązanie niż obecna odpowiedź nr 2:

Right-click --> Tortoise Git --> Settings --> Git --> Credential --> Choose "Wincred, all Windows users" --> Hit apply

Następnym razem, gdy wprowadzisz hasło do repozytorium, zostanie ono automatycznie zapisane.


Jeśli używasz repozytorium, które wymaga kluczy SSH zamiast nazwy użytkownika / hasła (co brzmi jak oryginalny problem OP) , musisz

  1. Otwórz klucz SSH w PuTTY gen (instaluje się razem z Tortoise Git)
  2. W PuTTY gen zapisz klucz jako klawisz PuTTY.
  3. W repozytorium Right-click --> Tortoise Git --> Settings --> Git --> Remotes. Znajdź pilota (zwykle `` źródło ''), a następnie załaduj klucz PuTTY z kroku 2.

W moim przypadku działa to tylko wtedy, gdy używam nazwy użytkownika. Nie działa, gdy wpisujesz adresy e-mail użytkowników, więc miej to na uwadze.
— Razze

3
to była najkrótsza i najjaśniejsza odpowiedź, dziękuję.
— Alphas Supremum

Od zawsze szukałem tej dokładnej odpowiedzi!
— NielW

23

Aby to zrobić bez kluczy ...

Kliknij prawym przyciskiem myszy na swoim folderze
Wybierz tortoiseGit-> ustawienia-> Git-> Remote
Select origin (lub cokolwiek, co oznaczyłeś głównym pilotem)

Pod adresem URL użyj tego formatu.

Https: // NAZWA UŻYTKOWNIKA: PASSWORD @ URL

Gdzie NAZWA UŻYTKOWNIKA to Twoja nazwa użytkownika
: dwukropek oddziela nazwę użytkownika i hasło i musi tam być.
HASŁO to Twoje hasło
@ oddziela dane uwierzytelniające z Twoim adresem
URL URL to adres URL, którego użyjesz do połączenia się z zasobem .git

Podziękowania dla Kamaci


3
To rozwiązanie działa również z kluczem. Clone https: // nazwa_użytkownika @ URL i jesteś w porządku.
— Orace

2
Tak, z wyjątkiem tego, że nie rób tego, ponieważ kiedy wykonujesz scalanie, TortoiseGit jest skłonny umieścić cały adres URL w komunikacie zatwierdzenia!
— mwardm

To idealne rozwiązanie. Ale czy istnieje sposób, aby ukryć hasło, ponieważ jest w postaci zwykłego tekstu.
— Amit Kumar

1
Co jeśli hasło zawiera znak @?
— Hammad Dar,

Użyłem tej odpowiedzi, ponieważ mam mingw64 i otrzymuję ten dziennik: Pomijanie wiersza polecenia „C: \ Program Files \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe" '(' C: \ Program Files \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe 'nie znaleziono) Potrzebny jest prawidłowy wiersz poleceń; Edytuj odpowiednio zasoby ciągów (3x) błąd: nie udało się wykonać skryptu zachęty (kod zakończenia 1)
— RW4

14

Zapisywanie nazwy użytkownika i hasła z TortoiseGit

Zapisywanie danych logowania w TortoiseGit jest całkiem proste. Oszczędza konieczności wpisywania nazwy użytkownika i hasła za każdym razem, gdy wykonujesz pociągnięcie lub pchnięcie.

  1. Utwórz plik o nazwie _netrc z następującą zawartością:

    maszyna github.com
    zaloguj swoje
    hasło logowania yourpassword

  2. Skopiuj plik do C: \ Users \ (lub innej lokalizacji; tak się składa, że ​​jest tam, gdzie go umieściłem)

  3. Przejdź do wiersza poleceń, wpisz setx home C: \ Users \

Uwaga: jeśli używasz czegoś wcześniejszego niż Windows 7, polecenie setx może nie działać dla Ciebie. Zamiast tego użyj set i dodaj zmienną środowiskową home do systemu Windows za pomocą ustawień zaawansowanych w sekcji Mój komputer.

KREDYT NA: http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/


1
działa po prostu ładnie, ale czy istnieje sposób na zaszyfrowanie zwykłego hasła? Czułem się nieswojo, przechowując hasło github w zwykłym pliku tekstowym.
— Dio Phung

@DioPhung Pomyśl o tym, co właśnie powiedziałeś. Jeśli hasło jest zaszyfrowane, musisz teraz zapamiętać (nowe) hasło do korzystania z hasła. Jeśli nie musisz pamiętać hasła, dobrze jest, jak nie mieć hasła (z punktu widzenia lokalnego zagrożenia). Albo chcesz wygody, albo bezpieczeństwa.
— Camilo Martin,

1
@DioPhung Jeśli boisz się lokalnych administratorów, mogą z łatwością zainstalować keyloggera. Lokalny administrator może robić z Twoimi danymi, co tylko zechce, i jako takie, każde zabezpieczenie przed nimi byłoby zabezpieczeniem poprzez zaciemnienie (nawet narzędzia i sztuczki, których używają banki, nie mogą ochronić Cię przed kompetentnym i zdeterminowanym lokalnym administratorem, a oni staraj się mocno). Jeśli chodzi o haszysz, co masz na myśli? Hash jest nieodwracalny. A jeśli szyfrujesz przy użyciu samego hasła, nadal będziesz musiał je wpisywać za każdym razem ... Więc to to samo, co nie szyfrowanie go w pierwszej kolejności.
— Camilo Martin,

1
Szyfrowanie @CamiloMartin nie wymaga hasła; istnieje wiele sposobów uwierzytelniania w systemie, które mogą być wygodniejsze niż hasło. Bezpieczeństwo to nie wszystko lub żadne.
— Adam

1
Chociaż to rozwiązanie jest możliwe, lepszym pomysłem jest przechowywanie hasła w Windows PasswordVault . Ta możliwość była dostępna w TortoiseGit od marca 2013 roku poprzez implementację API git-credential-store . Prawdopodobnie jest też łatwiej: From within repo → Context-click → TortoiseGit → Settings → Git → Credential → wincred → OKi gotowe. Napisałem pełną odpowiedź na to pytanie dla zainteresowanych.
— Adam

5

Jednym ze sposobów na to jest

  • wygeneruj parę kluczy za pomocą PuttyGen (lub zaimportuj do .ppk, jeśli masz już klucz)
  • załaduj klucz prywatny do peagenta
  • zaimportuj klucz publiczny do serwera gitosis (podaj swój klucz publiczny swojemu administratorowi)
  • a następnie użyj Plink jako klienta SSH

plink działa natywnie z peagentem, aby pobrać załadowany klucz.

można znaleźć plink.exe wraz z peagentem i innymi dodatkami w standardowej dystrybucji szpachli

aby go użyć przejdź do:

Ustawienia TortoiseGit -> Sieć -> Klient SSH.

Domyślnie zawiera ścieżkę do TortoisePlink.exe, zamiast ścieżki do plink.exe

Alternatywnie możesz użyć ssh (.exe) w dystrybucji msys (git), ale wtedy nie możesz użyć klucza prywatnego w kombinacji formatu .ppk / Peagent. Musisz albo wyeksportować swój klucz do formatu OpenSSH przez PuttyGen, albo utworzyć parę kluczy za pomocą ssh-keygen.


Co masz na myśli mówiąc „klient SSH zamiast TortoisePlink wskaż, aby połączyć”? Gdzie prawdopodobnie znajduje się ten program SSH?
— Mikaël Mayer

przepraszam za brak interpunkcji, myślę, że to jest źródłem nieporozumień. Zaktualizowałem odpowiedź
— mzzzzb

Nie musisz nic zmieniać w ustawieniach. Po prostu podaj prywatny klucz Putty podczas klonowania repozytorium przez SSH i gotowe. Pamiętaj, aby wprowadzić punkt końcowy SSH w oknie klonowania, a NIE HTTPS.
— MoonStom

4

Aby zautomatyzować uwierzytelnianie, użyj:

  1. Klucze SSH, jak już wskazali inni, lub
  2. wbudowany pomocnik poświadczeń.

Oczywiście nie przechowuj hasła w pliku tekstowym, chyba że repozytorium nie jest ważne.

TortoiseGit> 1.8.1 instaluje pomocnika git-credential-winstore, który zapewnia lokalny interfejs API do uzyskiwania dostępu i przechowywania danych logowania w istniejącym, lokalnym magazynie poświadczeń systemu Windows .

Możesz zobaczyć zapisane poświadczenia, przechodząc do Panelu sterowania → Konta użytkowników → Menedżer poświadczeń i wybierając „Poświadczenia systemu Windows”. Wpisy rozpoczynające się od „git:” pochodzą z git-credential-winstore.

Możesz skonfigurować wincred na repozytorium przez:

(GUI)

  1. Przejdź do repozytorium w Eksploratorze plików.
  2. Kliknij prawym przyciskiem myszy → TortoiseGit → Ustawienia → Git → Credential
  3. Pomocnik poświadczeń: wincred - tylko to repozytorium
  4. Przy następnym uwierzytelnieniu w repozytorium poświadczenia zostaną zapisane.

(CLI, POSH)

  1. cmdkey /add:git:https://USERNAME@github.com /user:USERNAME /pass:PASSWORD
  2.  

    @"
    [credential]
            helper = wincred
    "@ | Out-File -FilePath $repoRoot\.git\config -Append
    

Możesz wyświetlić wszystkie poświadczenia przechowywane dla repozytoriów za pomocą cmdkey /list:git:*
Po zapisaniu hasła nie są wyświetlane przez cmdkey ( http://ss64.com/nt/cmdkey.html )

Aby wyświetlić wszystkie poświadczenia z hasłami, musisz użyć interfejsu API systemu Windows . W przypadku PowerShell jest CredMan :

. .\CredMan.ps1
.\CredMan.ps1 -ShoCred

4

Miałem ten sam problem. Moje środowisko to Windows 10 z TortoiseGit 2.3.0.0 i git w wersji 2.11.0.windows.1

Następujące rozwiązania rozwiązały mój problem:

  • Kliknij prawym przyciskiem myszy -> TortoiseGit -> Ustawienia -> Sieć
  • Zaktualizuj klienta SSH do C: \ Program Files \ Git \ usr \ bin \ ssh.exe

wprowadź opis obrazu tutaj


3

Adres URL i tytuł okna TortoisePlink wskazują, że żółw próbuje użyć ssh jako protokołu transportowego. git obsługuje więcej niż jeden protokół transportowy, w tym dostęp do systemu plików i dostęp ssh. W swoim pytaniu opisujesz, że chcesz uzyskać dostęp do zdalnego repozytorium przez dostęp do systemu plików. W takim przypadku zdalny adres URL powinien wyglądać mniej więcej tak file://server/path/to/repo. Sprawdź ponownie adres URL zdalnego repozytorium.


3

Co zrobiłem, aby to naprawić (Windows):

  1. Otwórz PuttyGen zaimportuj mój klucz ssh i przekonwertuj go na klucz putty, zapisz części publiczne i prywatne w folderze .ssh (% userprofile% .ssh)
  2. Otwórz Putty i przejdź do Connection-> SSH-> Auth, a następnie ustaw tam plik klucza prywatnego.
  3. Wróć do sesji, wybierz Ustawienia domyślne i naciśnij Zapisz.
  4. Teraz spróbuj ponownie sklonować, a zostaniesz poproszony o podanie hasła do klucza ssh, wprowadź je i powinno działać.

2

Odpowiedź firmy Pramodtech przestała działać dla mnie z obecną wersją oficjalnego klienta Windows Git. Przechowuje plik wykonywalny ssh w Git\usr\binzamiastGit\bin teraz (od wersji 2.5 wydanej w sierpniu 2015 r.).

Więc idź do TortoiseGit > Settings > Network i zmień ścieżkę klienta SSH na:

C:\Program Files\Git\usr\bin\ssh.exe (lub jakakolwiek jest ścieżka do twojej instalacji Git)

wprowadź opis obrazu tutaj



1

Ponieważ żadne z przedstawionych tutaj rozwiązań nie zadziałało, a po wielu rozczarowaniach z rozwiązaniami, które znalazłem online, w końcu udało mi się to naprawić na moim komputerze.

Nie wiem, kiedy i jak skonfigurowałem mój kit TortoiseGit, aby zawsze używał jednego określonego klucza, i oczywiście powodowało to wszystkie problemy, gdy próbowałem połączyć się z innym serwerem za pomocą nowej pary kluczy.

Jak więc rozwiązać problem i jak sprawdzić, czy rzeczywiście masz ten sam problem co ja:

  1. Pobierz plink.exena swój komputer stąd
  2. Otwórz wiersz polecenia systemu Windows w tym samym katalogu, w którym pobrałeś plik plink.exe
  3. Uruchom to polecenie: plink -v <path_to_your_git_clone_repo_link>
  4. Spójrz na wynik i zobacz, czy masz podobny wiersz Reading private key file "C:\Path\To\Some\privateKey.ppk"
  5. Jeśli widzisz taką linię i nie jest to plik klucza szpachlowego, którego chcesz użyć, po prostu przejdź i zmień nazwę / usuń / przenieś ten plik, aby plink nie mógł go załadować następnym razem
  6. Po zmianie nazwy problematycznego pliku wszystko powinno działać zgodnie z oczekiwaniami, jeśli uruchomisz polecenie z punktu 3. powinieneś zobaczyć, że plink nie może teraz załadować tego ppkpliku, a następnie powinien wypisać coś podobnego Pageant is running. Requesting keys.i faktycznie tego chcieliśmy

To jest to, jeśli ktoś wie, jak mogę wyłączyć ten „globalny domyślny klucz szpachlówki”, daj mi znać w komentarzach, a zaktualizuję tę odpowiedź o informacje.


1

Proszę nie adres URL zdalnego źródła repozytorium może powodować ten problem. Miałem stare repozytorium, które działało idealnie, i nowe, które właśnie sklonowałem i pytało mnie o hasło.

Po porównaniu informacji w Settings > Git > Remote > Urlzobaczyłem, że ten, który działał, miał:

git@github.com:githubAccount/repoName.git

Nowy, który nie działał, miał rozszerzenie https adres.

Zobacz również zrzut ekranu poniżej.

wprowadź opis obrazu tutaj


1

Wiersz poleceń Tortoise GIT DOS przestał pytać o moje hasło, gdy umieściłem mój prywatny i publiczny klucz w C: \ Users \ .ssh dir. Korzystam z systemu Windows 7.


1

Miałem ten sam problem. W moim przypadku nie było hasła, które mógłbym tam wprowadzić. Połączenie zostało skonfigurowane jako SSH, ale nie zdefiniowano żadnych kluczy dla repozytorium.

Sprawdź: konfiguracja TortoiseGIT SSH . Te instrukcje dotyczą cloudforge, ale w przypadku innych usług musisz zrobić to samo, po prostu podaj swój klucz publiczny dostawcy repozytorium git.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.