"Doświadczenie jest najlepszym nauczycielem."

Połączenie do GitHub przez SSH

Tym razem wpis na temat GitHub i logowania się do niego za pomocą kluczy SSH. Czasami GitHub prosi nas o podanie hasła lub nawet loginu do konta. Można temu zaradzić wdrążając klucz SSH. Tworząc dwa klucze (publiczny i prywatny), jeden z nich umieszczamy na stronie GitHuba a drugi zachowujemy na dysku. Za pomocą takiej, szybkiej i krótkiej akcji możemy bezproblemowo logować się do GitHub z konsoli i działać na projektach bez ponownego logowania.

Poniżej postaram wyjaśnić się w najprostszy sposób jak to zrobić. W moim wypadku wszystkie akcje wykonuję pod systemem Windows 10.

Generowanie klucza SSH

Wraz z instalacją Gita, powinna doinstalować się dodatkowa powłoka bash. Posiada ona wsparcie kilku programów, które znajdziemy na systemach Linuxowych.

Git Bash Windows Search

Uruchamiając taką konsolę lub w CMD wpisując bash otwiera nam się dostęp do dodatkowej konsoli.

  1. W tym kroku wykonujemy polecenie:
    ssh-keygen -t rsa -b 4096 -C "twoj_email@domena.com"
  2. Teraz zostaniemy poproszenie o wskazanie lokalizacji zapisania klucza:
    Enter a file in which to save the key (/c/Users/Twoj_login/.ssh/id_rsa):

    Najlepiej jeżeli wciśniemy Enter bez podawania lokalizacji i zostawimy to pole puste. Klucz zostanie wygenerowany w domyślnej lokalizacji jaką jest c/Users/<Twoj_login>/.ssh/id_rsa

  3. W ostatnim kroku generator zapyta nas o passphrase czyli hasło szyfrujące klucz, nie musimy go podawać. Natomiast jeżeli je wpiszemy to przy, każdej próbie połączenia będziemy musieli je podać (chyba że dodamy passphrase do ssh-agenta, ale to poniżej).
    Enter passphrase (empty for no passphrase): *
    Enter same passphrase again: *

    *Hasło, które będziemy wpisywać będzie niewidoczne.

Całość powinna wyglądać tak

Git Bash ssh-keygen

 

Dodanie klucza SSH do ssh-agent

Teraz powinniśmy dodać nasz nowo utworzony klucz do agenta SSH. Jeżeli używamy Git Bash to agent powinien być uruchomiony, jeżeli natomiast nie jest możemy użyć polecenia w konsoli.

eval $(ssh-agent -s)

Dodawanie klucza jest proste, wystarczy wydać polecenie (gdzie ~/.ssh/id_rsa to lokalizacja klucza)

ssh-add ~/.ssh/id_rsa

 

Dodanie klucza SSH do konta GitHub

Nasz nowo wygenerowany klucz, po poprawnym zapisaniu powinien pojawić się pod podobną lokalizacją co u mnie. W moim przypadku jest to: C:\Users\patryk\.ssh\

  1. Otwieramy plik id_rsa.pub zwykłym edytorem tekstu (notepad, notatnik, itp) i kopiujemy jego całą zawartość.
  2. Przechodzimy na stronę https://github.com/settings/keys lub wybieramy ręcznie z ustawień:
    github przycisk settings Github ssh and gpg keys
  3. Ostatnim krokiem jest dodanie i zapisanie nowego klucza SSH, wybierając 'New SSH key’. Pokaże nam się pole 'Title’ oraz 'Key’. W pierwsze wpisujemy nazwę, a w drugie wklejamy nasz klucz ze schowka. Na końcu za pomocą przycisku 'Add SSH key’ zapisujemy klucz (możemy zostać poproszeni o podanie hasła logowania do naszego konta na GitHub).
    GitHub SSH keys

Testy!

Krótki test naszego połączenia:

ssh -T git@github.com

W odpowiedzi powinniśmy otrzymać 

Hi islandia18! You've successfully authenticated, but GitHub does not
provide shell access.

 

I to by było na tyle, jeżeli chodzi o używanie kluczy SSH w GitHub. Jeżeli artykuł się przydał to możesz go udostępnić lub zostawić komentarz. Jeżeli jednak w artykule jest błąd lub coś jest nie jasne to również zapraszam do zostawienia komentarza 😉

Pozdrawiam!

Share This: