W tym wpisie opiszę jak w łatwy sposób połączyć się z Github-em za pomocą SSH.
Dzięki takiemu połączeniu możemy rozpocząć pracę ze zdalnym repozytorium, czyli zrobić git clone poprzez SSH zamiast HTTPS i dalej pracować z repo nie podając loginu i hasła podczas każdego push-a.
Warunki wstępne
- musisz mieć konto na Github
Po co SSH?
Próbując sklonować jakieś repozytorium z Github-a, np. https://github.com/Osky772/www.oskarkowalow.pl poprzez SSH dostaniemy podobny error:
git clone git@github.com:Osky772/www.oskarkowalow.pl.git
...
Initialized empty Git repository in `/Users/username/Documents/www.oskarkowalow.pl/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
To oznacza, że nie mamy wygenerowanego klucza SSH.
Konfiguracja
- W terminalu uruchom:
cd ~/.ssh && ssh-keygen, - Dalej w terminalu uruchom:
ssh-add ~/.ssh/id_rsa, - Teraz kopiujemy klucz do schowka. Komendy różnią się w zależności od systemu operacyjnego:
- na OS X w terminalu uruchom:
cat id_rsa.pub | pbcopy, - na Windows Powershell w terminalu uruchom:
Get-Content id_rsa.pub | Set-Clipboard, - na Windows (via Cygwin/Git Bash) w terminalu uruchom:
cat id_rsa.pub | clip, - na Linuxie w terminalu uruchom:
cat id_rsa.pub | xclip,
- na OS X w terminalu uruchom:
- Wejdź na Github-a i dalej w ustawienia swojego konta:
- Kliknij ikonkę swojego konta w prawym górnym rogu,
- Kliknij Settings,
- Kliknij SSH and GPG keys,
- Kliknij New SSH key,
- W tytule wpisz np. “mój prywatny komputer Dell” lub cokolwiek innego,
- W sekcji Key wklej skopiowany wcześniej klucz SSH,
- Kliknij Add SSH key,
- W końcu możemy skonfigurować plik
.gitconfig:- W terminalu uruchom
git config --global user.name "oskar", - Oraz
git config --global user.email oskar@...,
- W terminalu uruchom
- Zrestartuj terminal, aby mieć pewność, że config się przeładował.
Koniec
Brawo 👏, teraz wszystko powinno działać! Możemy klonować i commitować do zdalnego repo.