SSH (Secure Shell) umożliwia bezpieczną i szyfrowaną komunikację zdalną z serwerem. Autoryzacja użytkownika może odbywać się m.in. za pomocą hasła lub klucza (RSA, DSA). Klucze SSH eliminują konieczność wpisywania hasła przy każdym logowaniu, co zwiększa bezpieczeństwo i wygodę. W tym artykule dowiesz się krok po kroku jak wykonać odpowiednią konfigurację w aplikacji Terminal.
- jak zainstalować Homebrew i zaktualizować OpenSSH
- jak w Terminalu wygenerować klucze SSH i zapisać hasło klucza prywatnego w Keychain
- jak logować się do SSH w Terminalu za pomocą kluczy
Jak zainstalować Homebrew i zaktualizować OpenSSH w macOS?
Zanim przejdziesz do generowania kluczy SSH, upewnij się czy posiadasz zainstalowane OpenSSH w wersji co najmniej 8.0. Jeśli nie, dokonaj jego aktualizacji. W tym celu wykonaj poniższe kroki.
1. Uruchom Terminal.
2. Sprawdź czy posiadasz zainstalowaną najnowszą wersję OpenSSH. W tym celu wprowadź poniższe polecenie.
ssh -V
i zatwierdź przyciskiem Enter.
3. Po wykonaniu polecenia zostanie wyświetlona informacja o zainstalowanej wersji OpenSSH, jak w poniższym przykładzie.
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips
4. Jeśli posiadasz OpenSSH w wersji co najmniej 8.0 możesz pominąć punkty 5-9. W przeciwny wypadku, tak jak w powyższym przykładzie, dokonaj aktualizacji OpenSSH. Najpierw zainstaluj Homebrew za pomocą poniższego polecenia:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
5. Gdy zostanie wyświetlony poniższy komunikat:
===> Checking for ’sudo’ access (which may request your password)…
wprowadź hasło do swojego Mac’a.
6. Następnie po wyświetleniu komunikatu:
Press RETURN/ENTER to continue or any other key to abort.
Naciśnij Enter, aby kontynuować.
7. Jeśli podczas instalacji ponownie zostanie wyświetlona prośba o wprowadzenie hasła, wprowadź hasło do swojego Mac’a.
8. Po zakończeniu instalacji Homebrew, wprowadź poniższe polecenie, aby zainstalować najnowszą wersję OpenSSH:
brew install openssh
9. Gdy instalacja OpenSSH dobiegnie końca, będziesz już posiadał najnowszą dostępną wersję.
Uwaga! Instalacja może zająć dłuższy czas. Choć chwilami proces może wyglądać na zamrożony, w rzeczywistości instalacja jest w toku i należy zaczekać na jej zakończenie.
Jak wygenerować klucze SSH w Terminalu na macOS?
1. W Terminalu wprowadź poniższe polecenie:
ssh-keygen -t rsa -b 4096
2. Następnie zostanie wyświetlony komunikat:
Enter file in which to save the key (/Users/użytkownik/.ssh/id_rsa):
Domyślnie pliki z kluczami są tworzone w lokalizacji /Users/użytkownik/.ssh/, zaś domyślna nazwa plików kluczy to id_rsa. Aby zaakceptować domyślne ustawienia naciśnij przycisk Enter lub wprowadź własną nazwę dla generowanych kluczy. Na potrzeby tego artykułu skorzystaliśmy z domyślnej nazwy.
3. W kolejnym kroku zostanie wyświetlony poniższy komunikat:
Enter passphrase (empty for no passphrase)
Wprowadź hasło do klucza prywatnego i zatwierdź przyciskiem Enter. Następnie ponownie wprowadź hasło i również zatwierdź przyciskiem Enter.
4. Jeżeli wybrałeś domyślną lokalizację i nazwę pliku, wprowadź następujące polecenie:
cat ~/.ssh/id_rsa.pub
Wówczas zostanie wyświetlony klucz publiczny. Zachowaj go, będzie on potrzebny w kolejnym kroku.
Jak dodać klucz publiczny SSH na serwerze?
1. Zaloguj się do Panelu Klienta i przejdź do zakładki Hosting -> Manager plików. Następnie przejdź do katalogu .ssh.
2. W sekcji Narzędzia systemu plików, w polu Utwórz nowy plik, wprowadź nazwę authorized_keys i kliknij w przycisk Utwórz.
3. Kliknij w Edytuj obok utworzonego pliku authorized_keys.
4. Wprowadź swój klucz publiczny i kliknij w przycisk Zapisz jako, aby zapisać zmiany.
Jak zalogować się do SSH w Terminalu za pomocą kluczy?
1. Otwórz Terminal.
2. Wprowadź polecenie zgodne z poniższym wzorem:
ssh -p 22 użytkownik@sX.zenbox.pl
gdzie użytkownik to login do twojego głównego konta FTP/SSH, zaś sX.zenbox.pl to adres serwera na którym znajduje się Twoje konto.
Login do głównego konta FTP/SSH oraz adres serwera znajdziesz w Panelu Klienta, w sekcji Twoje konto, znajdującej się po prawej stronie – odpowiednio w polach Login oraz ID serwera.
3. Jeżeli zostanie wyświetlony poniższy komunikat:
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Wprowadź yes i naciśnij przycisk Enter.
4. Następnie wprowadź hasło do klucza prywatnego, które wpisałeś w poprzednim kroku, podczas generowania kluczy SSH.
5. Jeśli wprowadziłeś dane prawidłowo, zostaniesz pomyślnie zalogowany do SSH.
Jak na stałe zapisać hasło do klucza prywatnego w Terminalu na macOS?
Obecnie wykonana konfiguracja umożliwia już logowanie do SSH za pomocą kluczy, jednak wymaga wprowadzenia hasła do klucza prywatnego. Aby nie było potrzeby wprowadzania tego hasła, możesz je zapisać w Keychain (pęku kluczy). W tym celu wykonaj poniższe kroki.
1. Uruchom Terminal.
2. Domyślnie w macOS agent SSH jest uruchamiany przy starcie systemu. Aby upewnić się czy tak jest, wprowadź poniższe polecenie:
launchctl list | grep ssh-agent
Jeżeli agent jest aktywny, zostanie wyświetlony identyfikator agenta SSH.
3. Aby zapisać hasło do klucza prywatnego w Keychain, użyj poniższego polecenia:
ssh-add --apple-use-keychain ~/.ssh/id_rsa
4. Następnie upewnij się, czy klucz będzie ładowany przy starcie systemu. W tym celu wprowadź poniższe polecenie:
ssh-add --apple-load-keychain
Jeśli weryfikacja będzie pozytywna, zobaczysz informację zgodną z poniższym przykładem:
Idenity added: /Users/użytkownik/.ssh/id_rsa (użytkownik@MacBook-Użytkownik.local)
5. Od teraz możesz już logować się do SSH bez użycia hasła. Wystarczy, że w Terminalu wprowadzisz polecenie zgodne ze wcześniejszymi wzorem:
ssh -p 22 użytkownik@sX.zenbox.pl
Podsumowanie
Wykonanie odpowiedniej konfiguracji w celu logowania do SSH za pomocą kluczy jest proste i pozwoli zwiększyć bezpieczeństwo oraz wygodę podczas pracy. Dlatego też warto zacząć używać kluczy SSH już dziś.