Zacząłem używać programu Visual Studio Code i próbowałem zapisać projekt testowy w GitHub , ale Visual Studio Code zawsze pyta o moje poświadczenia w GitHub .
Zainstalowałem na swoim komputerze GitHub Desktop, a także Git , już uruchomiłem:
git config --global credential.helper wincred
ale nadal Visual Studio Code prosi o poświadczenia.
Jakaś pomoc?
oto mój plik .gitconfig znajdujący się w profilu użytkownika:
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true
[user]
name = ddieppa
[user]
email = [email protected]
[credential]
helper = wincred
Oto wyskakujące okna z pytaniem o poświadczenia:
Wprowadzam moje poświadczenia GitHub w wyskakującym okienku , ale nadal pojawia się ten błąd w oknie danych wyjściowych Git w programie Visual Studio Code :
remote: Anonymous access to ddieppa/LineOfBizApp.git denied.
fatal: Authentication failed for 'https://github.com/ddieppa/LineOfBizApp.git/'
git
visual-studio
github
visual-studio-code
ddieppa
źródło
źródło
Odpowiedzi:
Ostatnia aktualizacja: 05 marca 2019 r
Po 98 opiniach, myślę, że muszę udzielić prawdziwej odpowiedzi z wyjaśnieniem.
Dlaczego kod VS prosi o hasło? Ponieważ VSCode uruchamia funkcję automatycznego pobierania, podczas gdy serwer git nie ma żadnych informacji autoryzujących twoją tożsamość. Dzieje się tak, gdy:
https
zdalny adres URL. Tak! Ten rodzaj pilota absolutnie zapyta Cię za każdym razem. Tutaj nie ma wyjątków! (Możesz wykonać tymczasową sztuczkę, aby buforować autoryzację jako rozwiązanie poniżej, ale nie jest to zalecane).ssl
zdalny adres URL, ALE nie skopiowałeś swojego klucza publicznego ssh na serwer git. Służyssh-keygen
do generowania klucza i kopiowania go na serwer git. Gotowe! To rozwiązanie pomaga także nigdy więcej nie wpisywać hasła na terminalu. Tutaj znajdziesz odpowiedź na dobrą instrukcję @Fnatical .Zaktualizowana część na końcu tej odpowiedzi wcale tak naprawdę nie pomaga. (W rzeczywistości powoduje stagnację w przepływie pracy.) Zatrzymuje to, co się dzieje w VSCode i przenosi te zdarzenia do terminala.
Przepraszam, jeśli ta zła odpowiedź wpłynęła na ciebie bardzo długo.
-
oryginalna odpowiedź (zła)
Znalazłem rozwiązanie na dokumencie VSCode :
Tak więc włącz pomocnika poświadczeń, aby Git zapisał twoje hasło na pewien czas w pamięci. Domyślnie Git będzie buforować twoje hasło przez 15 minut.
W Terminalu wprowadź następujące dane:
Aby zmienić domyślny limit czasu pamięci podręcznej haseł, wprowadź następujące dane:
AKTUALIZACJA (jeśli oryginalna odpowiedź nie działa)
Zainstalowałem VS Code i konfiguruję to samo powyżej, ale jak powiedział @ddieppa, to też nie działało dla mnie. Próbowałem więc znaleźć opcję w Ustawieniach użytkownika i zobaczyłem „git.autofetch” = true, teraz ustaw to na false! Kod VS nie jest już wymagany do wielokrotnego wprowadzania hasła!
W menu kliknij Plik / Preferencje / Ustawienia użytkownika i wpisz te:
Umieść swoje ustawienia w tym pliku, aby zastąpić ustawienia domyślne
źródło
git config --global credential.helper cache
. Więcej informacji można znaleźć na stronie git-scm.com/book/gr/v2/Git-Tools-Credential-Storage .Powinieneś być w stanie ustawić swoje poświadczenia w następujący sposób:
git remote set-url origin https://<USERNAME>:<PASSWORD>@bitbucket.org/path/to/repo.git
Możesz uzyskać zdalny adres URL w następujący sposób:
git config --get remote.origin.url
źródło
Działa to dla mnie: 1. Ustaw hepler poświadczeń do przechowywania
$ git config --global credential.helper store
2. następnie sprawdź, czy chcesz:
$ git config --global credential.helper store
Prosty przykład przy użyciu git bash cytowanego tutaj (działa tylko dla bieżących repozytoriów, użyj
--global
dla wszystkich repozytoriów )Działa również dla VS Code.
Bardziej szczegółowy przykład i zaawansowane użycie tutaj .
Uwaga: nazwa użytkownika i hasła nie są szyfrowane i przechowywane w formacie zwykłego tekstu, więc używaj go tylko na komputerze osobistym.
źródło
store
zrobił tohttps
celussh
i kluczy ssh jako alternatywę.Poniższe kroki przeprowadzą Cię przez:
** Generowanie kluczy SSH bez hasła jest nierozsądne, jeśli praca jest szczególnie wrażliwa.
System operacyjny - Fedora 28 | Edytor - VS Code v1.23.0 | Repozytorium - Git
Wygeneruj klucze SSH:
ssh-keygen -t rsa -C "[email protected]"
Po wykonaniu powyższych kroków lokalizacja twojego klucza publicznego zostanie pokazana w oknie terminala. Jeśli aktualnie zalogowanym użytkownikiem jest „bob”, lokalizacją Twojego klucza publicznego będzie /home/bob/.ssh/id_rsa.pub
Skopiuj i zaimportuj klucz publiczny do GitHub:
cat /home/bob/.ssh/id_rsa.pub
Skopiuj do schowka cały klucz publiczny, który jest teraz wyświetlany w oknie terminala
Potwierdź powyższe kroki:
ssh -T [email protected]
yes
Cześć ! Pomyślnie się uwierzytelniłeś, ale GitHub nie zapewnia dostępu do powłoki.
Pierwsze zatwierdzenie / wypchnięcie bez konieczności wprowadzania nazwy użytkownika / hasła: -
touch test.txt
git add test.txt
git commit
- otwiera edytor, wpisz wiadomość i zapisz plik. Jeśli vi jest twoim edytorem, naciśniji
po otwarciu pliku, wprowadź wiadomość, naciśnij esc, a następnie naciśnij,:x
aby zapisać zmiany.git push
Jedyny czkawka, jaką możesz napotkać, to próba połączenia SSH z GitHub. Ten link zapewni pewną pomoc -
Udanego polowania!
źródło
Spróbuj zainstalować „ Git Credential Manager dla Windows ” (i postępuj zgodnie z instrukcjami dotyczącymi konfigurowania menedżera poświadczeń ).
Gdy jest to wymagane w aplikacji korzystającej z Git (np. VS Code), „ magicznie ” otworzy wymagane okno dialogowe dla danych logowania Visual Studio Team Services.
źródło
ssh-agent
już biegnę . Ale VS Code wydaje się ignorować to w Linuksie.Wszystko, co musiałem zrobić, to uruchomić polecenie:
git config --global credential.helper wincred
Następnie dwukrotnie zapytano mnie o hasło.
Następnym razem zadziałało bez pytania o hasło.
źródło
store
zamiastwincred
.git config --global credential.helper 'cache --timeout==1209600'
Aby trwał 2 tygodnie zamiast domyślnych 15 minut. Źródło: help.github.com/en/github/using-git/…store
zapisze go na stałe w dysk. Również mój poprzedni komentarz zawiera błąd: nie używaj==
, używaj=
. Za późno na edycję.Użyj ssh zamiast http / https.
Trzeba będzie zestaw kluczy SSH na lokalnym komputerze, przesłać je na serwer git i zastąpić postać url
http://
celugit://
i nie będzie trzeba już używać haseł.Jeśli nie możesz użyć ssh, dodaj to do swojej konfiguracji:
dokumenty są tutaj .
Używanie klucza ssh w github
Po prostu wykonaj te czynności, a natychmiast skonfigurujesz swój klucz ssh:
Wygeneruj nowy klucz ssh (lub pomiń ten krok, jeśli masz już klucz)
ssh-keygen -t rsa -C "your@email"
Po ustawieniu klucza w
home/.ssh
katalogu (lubUsers/<your user>.ssh
pod Windows) otwórz go i skopiuj zawartośćJak dodać klucz SH do konta Github?
SSH keys
Add ssh key
I wszyscy macie zamiar iść :-)
źródło
Zasadniczo można korzystać z wbudowanych urządzeń do przechowywania danych logowania:
git config --global credential.helper store
Lub, jeśli korzystasz z systemu Windows, możesz użyć systemu poświadczeń:
git config --global credential.helper wincred
Lub, jeśli korzystasz z systemu MacOS, możesz użyć ich systemu danych logowania:
git config --global credential.helper osxkeychain
Pierwsze rozwiązanie jest optymalne w większości sytuacji.
źródło
Automatyczne uwierzytelnianie Git . Informacje o wersji v1.45 :
źródło
askpass = /usr/bin/ksshaskpass
w moim,.gitconfig
w wyniku czego za każdym razem dostawałem nazwę użytkownika i hasło. Prawdopodobnie zostanie to bardziej uprzywilejowane, ponieważ wersja 1.45 działa na większej liczbie komputerów.W systemie Windows 10: przejdź do panelu sterowania / Menedżera poświadczeń / poświadczenia systemu Windows -> kliknij link git, -> edytuj -> zaktualizuj nowe hasło. To powinno działać
źródło
Użyj klucza SSH bez hasła.
Może dla niektórych jest to oczywiste (nie dla mnie). Nie rozwiązuje to również problemu, jeśli absolutnie potrzebujesz hasła, ale był to przyzwoity kompromis w mojej sytuacji na Macu.
źródło
Po krótkiej walce z czymś takim myślę, że wymyśliłem dobre rozwiązanie, zwłaszcza gdy mam wiele kont w GitHub i BitBucket. Jednak w przypadku VSCode ostatecznie skończyło się na uruchomieniu go z terminala Git Bash, dzięki czemu odziedziczył zmienne środowiskowe z sesji bash i wiedział, na którego ssh-agenta patrzeć.
Zdaję sobie sprawę, że to stary post, ale nadal bardzo starałem się znaleźć jedno miejsce, aby uzyskać potrzebne informacje. Ponadto od 2017 r. Ssh-agent ma możliwość monitowania o hasło tylko podczas próby uzyskania dostępu do repozytorium.
Tutaj umieszczam swoje ustalenia, jeśli ktoś jest zainteresowany:
źródło
Po tym artykule :
Możesz po prostu ustawić GIT_SSH env. var. do programu Putty's plink.exe. (Następnie użyj pageant.exe jako agenta autoryzacji)
źródło
Rozwiąż problem, wykonując następujące czynności.
Odinstalowane oprogramowanie Vscode i git i ponownie zainstalowane to samo. Zmieniono adres URL klonowania repozytorium git z ssh na https.
źródło
Miałem podobny problem w Visual Studio Code.
Rozwiązałem problem, zmieniając zdalny adres URL na https . (w pliku .git / config)
i również
ściągnięty ponownie, wyskoczyło okienko poświadczeń systemu Windows, problemy rozwiązane.
źródło
Dla mnie skonfigurowałem moje zdalne repozytorium za pomocą klucza SSH, ale git nie mógł ich znaleźć, ponieważ zmienna środowiskowa HOMEDRIVE automatycznie ustawiała się na udział sieciowy z powodu polityki domeny mojej firmy. Zmiana tej zmiennej środowiskowej w mojej powłoce przed uruchomieniem
code .
spowodowała, że VSCode odziedziczy prawidłową zmienną środowiskową i nie ma już błędów połączenia w oknie wyjściowym git.Teraz muszę tylko wymyślić, jak zastąpić zasady domeny, więc HOMEDRIVE zawsze wskazuje mój
c:\users\marvhen
katalog lokalny, który jest domyślną lokalizacją.ssh
katalogu.źródło
Udało mi się to zatrzymać, wykonując następujące kroki.
cd "C:\Program Files\Git\mingw64\libexec\git-core"
a następniegit-credential-manager.exe uninstall
git config --global credential.helper wincred
UWAGA: Użyłem osobistego tokena dostępu jako mojego hasła.
źródło
Podobny problem rozwiązałem w prosty sposób:
git pull origin master
. Zamień „origin” na swoją nazwę RemoteTo wszystko. Rozwiązałem problem
źródło
oprócz dodania powyższych wpisów konfiguracji ssh
jeśli Windows
w PowerShell teraz kod vs nie powinien monitować ...
źródło
w systemie Windows 10 naciśnij typ klucza systemu Windows i powinieneś zobaczyć „Menedżer poświadczeń” w Panelu sterowania, kliknij, aby otworzyć, a następnie usuń powiązane z nim dane uwierzytelniające zapisane w pamięci podręcznej, a następnie spróbuj ponownie, poprosi o podanie identyfikatora użytkownika klucz hasła w poprawnym haśle .
Stało się ze mną, kiedy zmieniłem hasło sieciowe
źródło
Zwykle uruchamiam to proste polecenie, aby zmienić zdalny adres URL git z https na ssh
źródło