Próbuję uwierzytelnić się w GitHub przy użyciu osobistego tokenu dostępu. W plikach pomocy na github stwierdza, że do uwierzytelnienia należy użyć metody cURL ( https://help.github.com/articles/creating-an-access-token-for-command-line-use ). Próbowałem tego, ale nadal nie mogę przesłać do GitHub. Należy pamiętać, że próbuję push z nieuwierzytelnionego serwera (Travis-CI).
cd $HOME
git config --global user.email "[email protected]"
git config --global user.name "username"
curl -u "username:<MYTOKEN>" https://github.com/username/ol3-1.git
git clone --branch=gh-pages https://github.com/username/ol3-1.git gh-pages
cd gh-pages
mkdir buildtest
cd buildtest
touch asdf.asdf
git add -f .
git commit -m "Travis build $TRAVIS_BUILD_NUMBER pushed to gh-pages"
git push -fq origin gh-pages
Ten kod powoduje błędy:
remote: odmowa dostępu anonimowego do scuzzlebuzzle / ol3-1.git.
fatal: uwierzytelnianie nie powiodło się dla „ https://github.com/scuzzlebuzzle/ol3-1.git/ ” ”
źródło
git remote set-url origin https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git
Najpierw musisz utworzyć osobisty token dostępu (PAT). Jest to opisane tutaj: https://help.github.com/articles/creating-an-access-token-for-command-line-use/
Co ciekawe, artykuł mówi, jak go stworzyć, ale nie ma absolutnie żadnej wskazówki, co z nim zrobić. Po około godzinie dokumentowania trałowania i przepełnienia stosu w końcu znalazłem odpowiedź:
Właściwie byłem zmuszony włączyć uwierzytelnianie dwuskładnikowe zgodnie z polityką firmy, gdy pracowałem zdalnie i nadal miałem lokalne zmiany, więc w rzeczywistości nie było to
clone
potrzebne, alepush
. Czytałem w wielu miejscach, że potrzebowałem usunąć i odtworzyć pilota, ale w rzeczywistości moje normalnepush
polecenie działało dokładnie tak samo jakclone
powyżej, a pilot się nie zmienił:(@YMHuang umieścił mnie na właściwej ścieżce z linkiem do dokumentacji).
źródło
Aby uniknąć przekazania „kluczy do zamku” ...
Zauważ, że odpowiedź sigmavirus24 wymaga, abyś przekazał Travisowi token z dość szerokimi uprawnieniami - ponieważ GitHub oferuje tylko tokeny z szerokim zakresem, takim jak „napisz wszystkie moje publiczne repozytoria” lub „napisz wszystkie moje prywatne repozytoria”.
Jeśli chcesz ograniczyć dostęp (przy odrobinie pracy!), Możesz użyć kluczy wdrożeniowych GitHub w połączeniu z zaszyfrowanymi polami yaml firmy Travis.
Oto szkic tego, jak działa ta technika ...
Najpierw wygeneruj wywołany klucz wdrażania RSA (przez
ssh-keygen
)my_key
i dodaj go jako klucz wdrażania w ustawieniach repozytorium github.Następnie...
Następnie użyj tego
$password
pliku do odszyfrowania klucza wdrażania w czasie integracji, dodając do pliku yaml:Uwaga: ostatnia linia wstępnie wypełnia klucz RSA githuba, co pozwala uniknąć konieczności ręcznego akceptowania w momencie połączenia.
źródło
Automatyzacja / automatyzacja Git z tokenami OAuth
Działa również w
git push
poleceniu.Źródła: https://help.github.com/articles/git-automation-with-oauth-tokens/
źródło
To zadziałało dla mnie przy użyciu ssh :
Ustawienia → Ustawienia programisty → Wygeneruj nowy token .
źródło
git remote add origin https://[USERNAME]:[NEW TOKEN]@github.com/[USERNAME]/[REPO].git
git remote add origin https://[USERNAME]:[TOKEN]@git.mycompany.com/[ORGANIZATION]/[REPO].git
git remote set-url origin https://[TOKEN]@git.mycompany.com/[ORGANIZATION]/[REPO].git> /dev/null 2>&1
aby uniknąć rejestrowania niezabezpieczonych danych wyjściowych git. Przechowuj token w zmiennej, aby uniknąć umieszczania go w dzienniku. Ale trzeba to gdzieś przechowywać. Aby dodatkowo zabezpieczyć, możesz przechowywać je w postaci zaszyfrowanej. Takie podejście jest na przykład obsługiwane przez Travis CI.Zwykle to lubię
Git_token odczytuje ze zmiennej config w Azure Devops.
Możesz przeczytać cały mój blog tutaj
źródło
Po zmaganiu się z tym problemem przez prawie cały dzień twardego kodowania w sekcji ORG / REPO w naszym skrypcie kompilacji, który wyświetlał przerażający błąd „zdalny nie znaleziono”, ostatecznie znalazłem działające rozwiązanie polegające na użyciu
TRAVIS_REPO_SLUG
. Przełączenie tego na sztywno zakodowane atrybuty zadziałało natychmiast.źródło
Mając tyle godzin zmagań z zastosowaniem tokena GitHub, w końcu działa jak poniżej:
%d%H%M
na dopasowanym słowie'-123456-whatever'
Poniżej znajduje się pełny kod:
Wynik...
źródło
Hasło używane do logowania się do portalu github.com nie działa w interfejsie wiersza polecenia / powłoki VS Code. Powinieneś skopiować token PAT z adresu URL https://github.com/settings/tokens , generując nowy token i wklej ten ciąg w CLI jako hasło.
źródło
Jeśli korzystasz z GitHub Enterprise i klonowanie repozytorium lub wypychanie powoduje błąd 403 zamiast monitowania o nazwę użytkownika / token, możesz użyć tego:
źródło