{"id":610,"date":"2021-06-29T22:19:19","date_gmt":"2021-06-29T20:19:19","guid":{"rendered":"https:\/\/dziewczynanafroncie.pl\/?p=610"},"modified":"2021-06-29T22:19:19","modified_gmt":"2021-06-29T20:19:19","slug":"polaczenie-z-git-za-pomoca-ssh","status":"publish","type":"post","link":"https:\/\/dziewczynanafroncie.pl\/polaczenie-z-git-za-pomoca-ssh\/","title":{"rendered":"Po\u0142\u0105czenie z Git za pomoc\u0105 SSH"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Wraz z rozwojem umiej\u0119tno\u015bci w programowaniu, oraz prowadzeniem pierwszych projekt\u00f3w spotkacie si\u0119 z poj\u0119ciem klucza <strong>SSH<\/strong>. Je\u017celi ju\u017c spotkali\u015bcie si\u0119 z tym terminem, na pewno nasz\u0142o was pytanie czym owe klucze s\u0105, do czego s\u0105 potrzebne, kiedy je u\u017cywa\u0107 i jak je stworzy\u0107. W tym artykule postaram Wam si\u0119 to wszystko wyja\u015bni\u0107.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Klucze SSH<\/strong> -inaczej <strong>Secure Shell Key<\/strong> s\u0105 po\u015bwiadczeniami dost\u0119pu u\u017cywanymi w protokole <strong>SSH <\/strong>i stanowi\u0105 podstaw\u0119 nowoczesnych platform infrastruktury us\u0142ug programistycznych takich jak Git, GitHub, AWS, Google Cloud itp.<br>Zasadniczo klucze <strong>SSH <\/strong>s\u0105 metod\u0105 uwierzytelniania u\u017cywan\u0105 do uzyskania dost\u0119pu do szyfrowanego po\u0142\u0105czenia mi\u0119dzy systemami, a nast\u0119pnie wykorzystania tego po\u0142\u0105czenia do zarz\u0105dzania systemem zdalnym.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do czego wykorzystywany jest protok\u00f3\u0142 SSH i po co nam w pracy z Github<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Obecnie protok\u00f3\u0142 SSH jest szeroko stosowany do zdalnego logowania z jednego systemu do drugiego. Na  W dobie dzisiejszych czas\u00f3w i pracy zdalnej jest to wa\u017cnym aspektem. Aby m\u00f3c korzysta\u0107 z protoko\u0142u <strong>SSH<\/strong>, nale\u017cy zainstalowa\u0107 kilka program\u00f3w. Na nasze potrzeby u\u017cyjemy go do po\u0142\u0105czenia z  <strong>GitHub<\/strong>. Spytacie ale po co to wszystko? Do tej pory w celu komunikacji mogli\u015bmy uzyska\u0107 dost\u0119p do naszego konta podaj\u0105c login i has\u0142o. Dzia\u0142o si\u0119 tak, przy ka\u017cdej pr\u00f3bie wprowadzenia zmian na repozytorium zdalnym. Po pierwsze stosujemy go w celu zwi\u0119kszenia bezpiecze\u0144stwa autoryzuj\u0105c urz\u0105dzenie nie jak w poprzednim wypadku kiedy login dzia\u0142a na r\u00f3\u017cnych urz\u0105dzeniach. Po drugie dla naszej wygody, aby za ka\u017cdym razem go nie wprowadza\u0107.  <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Czym s\u0105 klucze SSH?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Klucze SSH s\u0105 dost\u0119pne w wielu rozmiarach, najpopularniejszym wyborem jest 2048 bitowe szyfrowanie RSA, kt\u00f3re jest por\u00f3wnywalne z has\u0142em o d\u0142ugo\u015bci 617 cyfr*<sup>1<\/sup> . W systemach Windows mo\u017cna wygenerowa\u0107 w\u0142asn\u0105 par\u0119 kluczy SSH, pobierj\u0105c i u\u017cywj\u0105c klienta SSH, takiego jak PuTTY. Natomiast w systemach Linux mo\u017cliwe jest wygenerowanie pary kluczy za pomoc\u0105 terminala.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Klucze SSH zawsze wyst\u0119puj\u0105 w parach, a ka\u017cda para sk\u0142ada si\u0119 z <strong>klucza prywatnego<\/strong> (bez rozszerzenia lub *ppk &#8211; kt\u00f3re oznacza, \u017ce klucz prywatny jest zgodny z formatem PuTTY) i <strong>klucza publicznego<\/strong> (*.pub). Kto lub co posiada te klucze, okre\u015bla typ pary kluczy <strong>SSH<\/strong>. Je\u017celi klucz prywatny i publiczny jest posiadany przez u\u017cytkownika okre\u015bla si\u0119 je jako klucze u\u017cytkownika. Na nasze potrzeby do po\u0142\u0105czenia z <strong>Github <\/strong>skupimy si\u0119 w\u0142a\u015bnie na tym rodzaju klucza. <br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak wygenerowa\u0107 klucz SSH?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tak jak opisa\u0142am powy\u017cej b\u0119dzie potrzebne nam zainstalowanie dodatkowego oprogramowania w postaci Git dla Windows. W chwili pisania tego artyku\u0142u jest to wersja 2.32 dost\u0119pna na stronie <a rel=\"noreferrer noopener\" href=\"https:\/\/git-scm.com\/\" target=\"_blank\">git-scm.com<\/a> zawiera on w sobie narz\u0119dzie ssh-keygen umo\u017cliwiaj\u0105ce generowanie kluczy.<br>Pierwsz\u0105 rzecz\u0105, kt\u00f3r\u0105 musimy uczyni\u0107 jest otwarcie konsoli git oraz wpisanie nast\u0119puj\u0105cej komendy.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash line-numbers\">ssh-keygen -t rsa -b 2048 -C \"email_konta_git@domain.pl\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jak widzimy komenda posiada par\u0119 opcji, aby troch\u0119 to rozja\u015bni\u0107 om\u00f3wmy ich znaczenie :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>-t<\/strong> : precyzuje typ generowanego klucza dla naszych potrzeb b\u0119dzie to klucz <strong>RSA<\/strong>, kt\u00f3ry wpisujemy bezpo\u015brednio po niej<\/li><li><strong>-b bity<\/strong>: okre\u015bla liczb\u0119 bit\u00f3w w utworzonym kluczu<\/li><li><strong>-C:<\/strong> Dodaje niestandardowy komentarz do klucza (kt\u00f3ry zostanie do\u0142\u0105czony na ko\u0144cu klucza publicznego) w naszym przypadku b\u0119dzie to adres email.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Po zatwierdzeniu komendy w nast\u0119pnym kroku zostaniemy poproszeni o wskazanie miejsca docelowego zapisu wygenerowanych kluczy. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash line-numbers\">Enter a file in which to save the key (C:\\Users\\%UserName%\/.ssh\/id_rsa):<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Najlepszym rozwi\u0105zaniem jest zatwierdzenie poprzez naci\u015bni\u0119cie klawisz <strong>Enter<\/strong>, nast\u0105pi wtedy zapis wygenerowanych kluczy w lokalizacji domy\u015blnej. Zostan\u0105 one zapisane w tym momencie w folderze systemowym profilu u\u017cytkownika. Je\u017celi z jaki\u015b przyczyn nie chcesz zapisywa\u0107 swoich kluczy w tym folderze w tym kroku musisz poda\u0107 nazw\u0119 docelowej \u015bcie\u017cki w kt\u00f3rej maj\u0105 zosta\u0107 zapisane klucze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W kolejnym kroku, kt\u00f3ry jest ju\u017c ostatnim zostaniemy poproszeni o has\u0142o szyfruj\u0105ce nasz wygenerowany klucz tzw <code>passphrase<\/code>, jest ono opcjonalne. Podanie go jest przydatne gdy do systemu na kt\u00f3rym wygenerowali\u015bmy klucz maj\u0105 dost\u0119p osoby trzecie i chcemy zabezpieczy\u0107 go przed niepo\u017c\u0105danym u\u017cyciem.  Je\u017celi nie chcemy wprowadza\u0107 has\u0142a pomijamy ten krok naciskaj\u0105c klawisz enter je\u017celi natomiast chcemy wprowadzi\u0107 has\u0142o, b\u0119dziemy musieli podawa\u0107 je przy ka\u017cdej pr\u00f3bie po\u0142\u0105czenia. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Po prawid\u0142owym wygenerowaniu kluczy <strong>SSH<\/strong>, je\u017celi nie zmienili\u015bmy podczas generowania docelowego miejsca zapisu  w \u015bcie\u017cce <code>C:\\Users\\%User%.ssh\\<\/code> powinny znajdowa\u0107 si\u0119 dwa pliki <strong>id_rsa<\/strong> oraz <strong>id_rsa.pub<\/strong><br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dodanie wygenerowanego klucza SSH do konta Github<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Gdy mamy ju\u017c \u015bwie\u017co wygenerowane klucze, nast\u0119pnym krokiem b\u0119dzie dodanie klucza publicznego do naszego konta <strong>Github<\/strong>.<br><br><strong>1.<\/strong> Pierwsze co musimy zrobi\u0107 to przej\u015b\u0107 do folderu w kt\u00f3rym wygenerowali\u015bmy klucz w tym wypadku b\u0119dzie to <code>C:\\Users\\%User%.ssh<\/code> oraz edytorem tekstowym typu notatnik lub Notepad++ otworzy\u0107 plik o nazwie <strong>id_rsa.pub<\/strong> oraz skopiowa\u0107 ca\u0142\u0105 jego zawarto\u015b\u0107 do schowka, poniewa\u017c b\u0119dzie on nam za moment potrzebny.<\/p>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"650\" src=\"https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/1-github-select-settings.jpg\" alt=\"github-ustawienia\" class=\"wp-image-612 size-full\" srcset=\"https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/1-github-select-settings.jpg 640w, https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/1-github-select-settings-394x400.jpg 394w, https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/1-github-select-settings-45x45.jpg 45w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\"><br><strong>2.<\/strong> Kiedy mamy ju\u017c skopiowany klucz publiczny, musimy zalogowa\u0107 si\u0119 na nasze konto <strong>Github<\/strong>. Po zalogowaniu na konto do kt\u00f3rego chcemy aby by\u0142 przypi\u0119ty klucz <strong>SSH<\/strong>, przechodzimy do zak\u0142adki <strong>settings<\/strong>.<\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3.<\/strong> nast\u0119pnie z menu wybieramy SSH and GPG keys.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"670\" height=\"460\" src=\"https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/2-github-ssh-keys-settings.jpg\" alt=\"github-zakladka-klucze\" class=\"wp-image-613\" srcset=\"https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/2-github-ssh-keys-settings.jpg 670w, https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/2-github-ssh-keys-settings-400x275.jpg 400w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4.<\/strong> Klikamy w Nowy klucz SSH<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"670\" height=\"445\" src=\"https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/3-add-new-ssh-key.jpg\" alt=\"github-dodawanie-klucza-ssh\" class=\"wp-image-614\" srcset=\"https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/3-add-new-ssh-key.jpg 670w, https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/3-add-new-ssh-key-400x266.jpg 400w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5.<\/strong> W tym kroku do uzupe\u0142nienia, b\u0119dziemy mie\u0107 dwa pola <strong>title<\/strong> oraz <strong>key<\/strong>. W pierwszym z nich mo\u017cemy dowolnie okre\u015bli\u0107 nazw\u0119 zapisywanego klucza, bardziej interesuje nas drugie pole do kt\u00f3rego wklejamy klucz publiczny skopiowany wcze\u015bniej z pliku <strong>rsa_id.pub<\/strong>. Na ten moment nie pozostaje nam ju\u017c nic innego jak naci\u015bni\u0119cie przycisku <strong>dodaj klucz SSH<\/strong>. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"670\" height=\"447\" src=\"https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/4-assign-ssh-key.jpg\" alt=\"github-przypisanie-klucza\" class=\"wp-image-615\" srcset=\"https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/4-assign-ssh-key.jpg 670w, https:\/\/dziewczynanafroncie.pl\/media\/2021\/06\/4-assign-ssh-key-400x267.jpg 400w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Sprawdzenie po\u0142\u0105czenia z Github<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Test prawid\u0142owego po\u0142\u0105czenia mo\u017cemy sprawdzi\u0107 za pomoc\u0105 nast\u0119puj\u0105cej komendy <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash line-numbers\">ssh -T git@github.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u017celi zrobili\u015bmy wszystko poprawnie otrzymamy komunikat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash line-numbers\">Hi! You've sucessfully authenticated, but GitHub does not provide shell access.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Natomiast je\u017celi w kt\u00f3rym\u015b kroku pope\u0142nili\u015bmy b\u0142\u0105d otrzymamy taki komunikat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash line-numbers\">The authenticity of host 'github.com can't be established.\n RSA key fingerprint is SHA256:sd34SDSd3msadm&amp;64sdad3244234nnjerwUWYEbansb348m.\n Are you sure you want to continue connecting (yes\/no\/[fingerprint])?yes\n Warning: Permanently added 'github.com,140.82.121.3' (RSA) to the list of known hosts.\n git@github.com: Permission denied (publickey).<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To ju\u017c wszystko co b\u0119dzie nam potrzebne do wygenerowania oraz zapisania klucza w konfiguracji naszego konta Github, w celu uzyskania po\u0142\u0105czenia poprzez SSH. Je\u017celi podba\u0142 Ci si\u0119 artyku\u0142 lub chcesz si\u0119 podzieli\u0107 swoimi uwagami prosz\u0119 o komentarz  lub udost\u0119pnienie.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wraz z rozwojem umiej\u0119tno\u015bci w programowaniu, oraz prowadzeniem pierwszych projekt\u00f3w spotkacie si\u0119 z poj\u0119ciem klucza SSH. Je\u017celi ju\u017c spotkali\u015bcie si\u0119 z tym terminem, na pewno nasz\u0142o was pytanie czym owe klucze s\u0105, do czego s\u0105 potrzebne, kiedy je u\u017cywa\u0107 i jak je stworzy\u0107. W tym artykule postaram Wam si\u0119 to wszystko wyja\u015bni\u0107.<\/p>\n","protected":false},"author":1,"featured_media":611,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[22,40,41,39],"class_list":["post-610","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-git","tag-git","tag-git-autoryzacja","tag-git-polaczenie","tag-ssh"],"_links":{"self":[{"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/posts\/610","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/comments?post=610"}],"version-history":[{"count":2,"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/posts\/610\/revisions"}],"predecessor-version":[{"id":620,"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/posts\/610\/revisions\/620"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/media\/611"}],"wp:attachment":[{"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/media?parent=610"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/categories?post=610"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dziewczynanafroncie.pl\/api\/wp\/v2\/tags?post=610"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}