Kategorie
100 days of code

100 days of code – day 9. SSH jako uwierzytelnianie w github (git bash) cz. 2/2

🕚🕚🕚
Dzisiejszy czas nauki = 1 godziny
Łączny czas nauki = 17 godzin

Jak zwykle na początku garstka linków:
Mój Instagram, Zaktualizowane notatki z nauki, mój github.W tym wpisie byłoby to wszystko. Dziękuję jeszcze raz za twoją obecność tutaj. Zapraszam Cię raz jeszcze na mój instagram. I życzę ci powodzenia w twoich projektach.
May the code be with you 🥳

Dziś dzięki wsparciu ludzi z instagrama udało się ogarnąć temat. Mimo wymyślnych technik stosowanych wczoraj odniosłem porażkę. Za to dziś prostym rozwiązaniem okazało się przekierowaniu z HTTPS na SSH. I od dziś przy git push nie muszę się uwiarygaadniać 🥳

A jak również ty możesz to zrobić? Proszę bardzo, o to moja droga:

  1. Na początku najłatwiejsze. Wejdź na swój profil github i przejdź do ustawień. Włącz tam 2FA (podwójną autoryzację). Następnie w ustawieniach znajdź opcję SSH and GPG keys. Tutaj w polu SSH keys za chwilę podamy klucz, który sobie wygenerujemy.
    Jeśli masz problem z trafieniem do właściwej zakładki w ustawieniach tutaj pokazane z obrazkami jak to zrobić

2. Otwórz terminal i użyj następującej koemendy:
(uwaga- w bashu wklejamy komendy za pomocą shift + insert)

ssh-keygen -t rsa -b 4096 -C "your@email.com"

Terminal zapyta cię o dwie rzeczy:
a) gdzie zapisać klucz? – tutaj po prostu naciśnij enter
b) podaj passphrase – jest to dodatkowe hasło, które ma uchronić cię przed nieautoryzowanym dostępem, gdyby ktoś dostał twój klucz (zazwyczaj wiąże się to z kradzieżą urządzenia, na którym taki klucz masz zapisany).
Możesz zostawić to miejsce puste lub wpisać swoje hasło (będziesz go potrzebował przy uruchomieniu git basha następnym razem.

3. Uruchamiamy agenda (takiego jakby pośrednika który trzyma ten klucz i otwiera nim dostęp do githuba).

eval $(ssh-agent -s)

Ta komenda powinna ci zwrócić tylko jedną linijkę:
Agent pid 72932 (te cyfry mogą być inne)

Możemy też stworzyć program, który automatycznie będzie nam uruchamiał agenta. Robimy to porzpez użycie komendy

touch ~/.profile
nano ~/.profile

i wklejając tam następujący kod. Po wklejeniu go wychodzimy z pliku i napytanie czy go zapisać odpisujemy yes.

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

Następnie musimy podać nasz klucz do agenta za pomocą komendy (będziemy musieli uwierzytelnić się anszym passphrase

ssh-add ~/.ssh/id_rsa

3. teraz kopiujemy nasz klucz ssh używając komendy. Po jej wpisaniu nasz klucz będzie w schowku. Teraz musimy go wkleić na stronie githuba w ustawieniach (patrz punkt 1szy)

clip < ~/.ssh/id_rsa.pub

4. Teraz trzeba ustawić, by github logował się nie przez https a ssh. Robimy to następującymi komendami:

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

W miejscu USERNAME/REPOSITORY wklejamy naszą ścieżkę (jest ona widoczna, w naszym profilu github) moja dla przykłady to quenrythane/Python_my_projects

Jeśli nie masz pewności jak nazywa się twoja ścieżka możesz je sobie wylistować komendą

git remote -v

Mam nadzieję, że „u ciebie też działa”. Sam męczyłem się z tym kilka godzin, więc zdaję sobie sprawę, jakie może być to upierdliwe. Jeśli masz jakieś kłopoty, napisz do mnie- spróbuje pomóc 😉

W tym wpisie byłoby to wszystko. Dziękuję jeszcze raz za twoją obecność tutaj. Zapraszam Cię raz jeszcze na mój instagram. I życzę ci powodzenia w twoich projektach.
May the code be with you 🥳

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *