Tworzenie klucza głównego
Tworzymy nowy klucz SSH dla Twojego konta w Windows, Linux lub macOS wybierając puste hasło, kiedy zostaniemy o nie zapytani:
ssh-keygen -t rsa -b 4096
Utworzy domyślnie parę kluczy:
- Klucz prywatny
~/.ssh/id_rsa
(tylko na Twoim komputerze) - Klucz publiczny
~/.ssh/id_rsa.pub
(udostępniamy zewnętrznym serwisom)
Teraz możemy dodać klucz publiczny do naszego konta GitHub lub Bitbucket kopiując tylko klucz publiczny:
cat ~/.ssh/id_rsa.pub
Możemy dodać taki klucz po stronie naszego serwera do pliku
~/.ssh/authorized_keys
jeden klucz na wiersz, żeby pominąć potrzebę
wpisywania hasła przy używaniu komendy:
ssh moj-serwer.com
Tworzenie klucza na konkretne potrzeby
Tworzymy nowy klucz SSH dla pracodawcy albo kontrahenta, np. dla firmy Foo:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_foo
Zobacz, jak użyć takiego klucza dla wyodrębnionego zbioru repozytoriów dla konkretnej firmy w sekcji Ustawienia dla zbioru repozytoriów.
Wiele różnych kluczy SSH dla GitHub
Możemy ten problem rozwiązać za pomocą metody opisanej w sekcji Ustawienia dla zbioru repozytoriów albo indywidualnie tak jak to opisano w tej sekcji.
Załóżmy, że mamy wiele różnych kluczy SSH lub nawet różnych kont GitHub i chcielibyśmy przypisać odpowiednie klucze do odpowiednich repozytoriów.
Tworzymy lub edytujemy plik:
~/.ssh/config
# Default SSH key for my personal projects
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
# SSH key for the Foo company
Host github-foo
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_foo
IdentitiesOnly yes
Teraz możemy pobrać repozytorium z firmy Foo:
git clone git@github-foo:foo/api.git
Zwróć uwagę, że użyliśmy github-foo
zamiast github.com
.