Jak dodać klucz SSH w systemie macOS
Nodea świadczy administrację Linux i usługi serwerowe, a logowanie kluczem SSH to u nas codzienna praktyka przy zarządzaniu serwerami. Ten przewodnik prowadzi użytkownika macOS od zera do działającego logowania kluczem — dotyczy wyłącznie macOS. Odpowiedniki dla innych systemów opisaliśmy osobno: klucz SSH w systemie Linux oraz klucz SSH przy pomocy PuTTY w Windows.
Czym jest klucz SSH i po co go dodawać na macOS?
Klucz SSH to para plików — klucz prywatny i klucz publiczny — która pozwala zalogować się na serwer bez wpisywania hasła. macOS generuje oba pliki jedną komendą w Terminalu, bez instalowania żadnego dodatkowego programu.
Różnica między nimi jest kluczowa dla bezpieczeństwa:
- Klucz prywatny zostaje wyłącznie u Ciebie, na Macu. To on potwierdza Twoją tożsamość, więc nikomu go nie przekazujesz.
- Klucz publiczny trafia na serwer. Nie trzeba go chronić — sam z siebie nie daje dostępu, dopóki nie ma pasującego klucza prywatnego.
Logowanie kluczem zastępuje logowanie hasłem: jest bezpieczniejsze, bo klucza nie da się zgadnąć jak hasła, i wygodniejsze, bo nie wpisujesz hasła przy każdym połączeniu. Na macOS narzędzie ssh-keygen jest już wbudowane w system — 0 dodatkowych instalacji. To odróżnia Maca od Windows, gdzie do wygenerowania pary kluczy potrzebny jest osobny program, na przykład PuTTYgen. Masz więc wszystko na miejscu i zaczynasz od razu.
Wygeneruj klucz SSH w Terminalu macOS
Jak wygenerować klucz SSH na macOS? Otwórz Terminal, wpisz komendę ssh-keygen i zatwierdź klawiszem Enter — macOS utworzy parę kluczy w kilka sekund. Poniżej pełna procedura krok po kroku.
- Otwórz Terminal. To aplikacja wbudowana w macOS — najszybciej uruchomisz Spotlight skrótem Cmd+Spacja, wpiszesz „Terminal” i naciśniesz Enter.
- Wpisz komendę ssh-keygen i naciśnij Enter, aby uruchomić generowanie klucza SSH na Macu.
- System zapyta, gdzie zapisać klucz. Domyślna ścieżka to /Users/(nazwa-użytkownika)/.ssh/id_rsa — zaakceptuj ją Enterem.
- System poprosi o passphrase, czyli hasło zabezpieczające klucz. Wpisz je albo zostaw puste, naciskając Enter.
Przy wpisywaniu passphrase Terminal nie pokazuje żadnych znaków — kursor stoi w miejscu, jakby nic się nie działo. To normalne zachowanie w macOS i całym świecie Unix; znaki są ukryte celowo, więc pisz dalej i zatwierdź Enterem.
Po zatwierdzeniu Terminal wypisze potwierdzenie zbliżone do poniższego:
Generating public/private rsa key pair.
Your identification has been saved in /Users/jan/.ssh/id_rsa
Your public key has been saved in /Users/jan/.ssh/id_rsa.pub
Te dwie linie oznaczają sukces: powstały pliki id_rsa (klucz prywatny) i id_rsa.pub (klucz publiczny).
Co oznacza passphrase i czy warto ją ustawić?
Passphrase to dodatkowe hasło chroniące Twój klucz prywatny — im dłuższe, tym bezpieczniejsze. Zabezpiecza klucz na wypadek, gdyby plik id_rsa dostał się w niepowołane ręce: bez passphrase skradziony klucz prywatny od razu daje dostęp, z passphrase — nie.
Passphrase nie jest obowiązkowa. Zostawienie pustego pola (Enter) daje logowanie w pełni bezhasłowe, wygodne przy automatyzacji. Jeśli ją ustawisz, zapisz ją w bezpiecznym miejscu, na przykład w menedżerze haseł — passphrase nie da się odzyskać, a bez niej klucz prywatny staje się bezużyteczny.
Gdzie macOS zapisuje klucz prywatny i publiczny?
macOS zapisuje oba klucze w katalogu /Users/(nazwa-użytkownika)/.ssh/ — klucz prywatny w pliku id_rsa, a klucz publiczny w pliku id_rsa.pub. Ten sam katalog zapisujesz też skrótowo jako ~/.ssh/.
- id_rsa — klucz prywatny. Nigdy nikomu go nie przekazuj i nie zgub. To jedyny plik, który potwierdza Twoją tożsamość wobec serwera.
- id_rsa.pub — klucz publiczny. Ten plik kopiujesz na serwer; rozpoznasz go po końcówce .pub.
Zawartość klucza publicznego, gotową do skopiowania, wyświetlisz komendą cat ~/.ssh/id_rsa.pub. Terminal wypisze jeden długi wiersz zaczynający się od ssh-rsa — to właśnie ten tekst trafia na serwer.
Katalog .ssh jest ukryty, bo jego nazwa zaczyna się od kropki, więc w Finderze standardowo go nie widać. Aby pokazać ukryte pliki i wejść do .ssh w Finderze, użyj skrótu Cmd+Shift+kropka. Ponowne naciśnięcie tego skrótu znów je ukrywa.
Dodaj klucz publiczny na serwer
Jak dodać klucz SSH na serwer? Skopiuj zawartość pliku id_rsa.pub do pliku ~/.ssh/authorized_keys na serwerze — wtedy serwer rozpozna Twój klucz i pozwoli zalogować się bez hasła. Kopiujesz zawsze klucz publiczny; prywatny zostaje na Macu. Masz dwie metody.
- Metoda automatyczna (najprostsza) — wpisz w Terminalu komendę ssh-copy-id użytkownik@adres-serwera. Podajesz raz hasło do serwera, a komenda sama dopisuje Twój klucz publiczny do pliku authorized_keys po stronie serwera.
- Metoda ręczna — zaloguj się na serwer (na przykład komendą ssh z hasłem), otwórz lub utwórz plik ~/.ssh/authorized_keys i wklej do niego zawartość klucza publicznego odczytaną wcześniej komendą cat. Zapisz plik.
Po dodaniu klucza sprawdź uprawnienia po stronie serwera: plik authorized_keys powinien mieć uprawnienia chmod 600, a katalog .ssh — chmod 700. Zbyt szerokie uprawnienia serwer traktuje jako zagrożenie i odrzuca klucz.
Klienci hostingu i serwerów Nodea dodają klucz publiczny przez panel klienta lub przez kontakt z supportem — nie musisz robić tego ręcznie na serwerze. Wystarczy przekazać nam zawartość pliku id_rsa.pub.
Sprawdź logowanie kluczem i rozwiąż typowe problemy
Aby sprawdzić, czy klucz SSH działa, połącz się komendą ssh użytkownik@adres-serwera — jeśli serwer nie prosi o hasło, klucz działa poprawnie. Brak pytania o hasło to sygnał, że logowanie kluczem publicznym zadziałało. Trzy najczęstsze problemy i ich rozwiązania:
- Serwer nadal prosi o hasło — sprawdź, czy klucz publiczny faktycznie znalazł się w pliku authorized_keys na serwerze. Najczęstsza przyczyna to skopiowanie niepełnego wiersza id_rsa.pub albo dodanie klucza do konta innego użytkownika, niż ten, którym się logujesz.
- Permissions too open — serwer odrzuca zbyt szeroko dostępny klucz prywatny. Ustaw uprawnienia komendą chmod 600 ~/.ssh/id_rsa, wtedy klucz przestaje być czytelny dla innych użytkowników systemu.
- Permission denied (publickey) — logujesz się złym użytkownikiem albo klucz publiczny nie został dodany po stronie serwera. Sprawdź nazwę użytkownika w komendzie ssh i obecność klucza w authorized_keys.
Jeśli używasz passphrase, macOS zapamięta ją w Pęku kluczy (Keychain), żeby nie pytać o nią przy każdym połączeniu — wpiszesz ją raz, a system podstawi ją automatycznie przy kolejnych logowaniach. Gdy klucz działa, kolejnym krokiem jest zwykłe łączenie się przez SSH z kontem na serwerze.
Jak wygenerować klucz SSH na Macu?
Otwórz Terminal, wpisz komendę ssh-keygen i naciśnij Enter. macOS utworzy parę kluczy — prywatny i publiczny — w katalogu ~/.ssh/ w kilka sekund.
Gdzie jest klucz SSH na macOS?
Klucze znajdują się w katalogu /Users/(nazwa-użytkownika)/.ssh/. Klucz prywatny to plik id_rsa, a klucz publiczny to plik id_rsa.pub z końcówką .pub.
Jak dodać klucz SSH do serwera?
Skopiuj zawartość pliku id_rsa.pub do pliku ~/.ssh/authorized_keys na serwerze. Najprościej zrobisz to jedną komendą ssh-copy-id użytkownik@adres-serwera.
Czy na macOS trzeba instalować program do kluczy SSH?
Nie. macOS ma wbudowane narzędzie ssh-keygen w Terminalu — nie instalujesz nic dodatkowego. Na Windows do tego samego potrzebny jest osobny program, na przykład PuTTYgen.
Który klucz kopiuję na serwer — prywatny czy publiczny?
Zawsze publiczny, czyli plik id_rsa.pub. Klucz prywatny (id_rsa) zostaje na Twoim Macu i nigdy go nie udostępniasz ani nie kopiujesz na serwer.
Czy muszę ustawiać passphrase?
Nie musisz — możesz zostawić puste pole, naciskając Enter. Passphrase to dodatkowe hasło, które zabezpiecza klucz prywatny na wypadek jego kradzieży.
