Jak dodać klucze SSH w Ubuntu 20.04

Jak dodać klucze SSH w Ubuntu 20.04

Skonfiguruj bezpieczne logowanie bez hasła do zdalnego serwera Ubuntu za pomocą kluczy SSH

SSH to bezpieczny protokół sieciowy klient-serwer, który pomaga komputerowi klienckiemu łączyć się i komunikować ze zdalnym serwerem. Połączenie SSH zapewnia, że ​​polecenia wpisywane w terminalu są przesyłane do zdalnego serwera za pośrednictwem zaszyfrowanego kanału.

Istnieją dwa rodzaje mechanizmów uwierzytelniania używanych do łączenia się ze zdalnym serwerem, uwierzytelnianie oparte na hasłach (podatne na ataki typu Brute-force) oraz uwierzytelnianie oparte na kluczach SSH (które jest bardzo bezpieczne).

W przypadku uwierzytelniania opartego na kluczu SSH na komputerze klienckim generowana jest para kluczy, nazywana kluczem publicznym i kluczem prywatnym. Kopia tego klucza publicznego jest udostępniana na serwerze zdalnym. Gdy klient wysyła żądanie połączenia do serwera, serwer generuje losowy ciąg i szyfruje go za pomocą klucza publicznego. Ten ciąg można odszyfrować tylko przy użyciu klucza prywatnego dostępnego na komputerze klienckim. Ta metoda zapewnia dostęp do serwera tylko klientom zawierającym klucz prywatny.

W tym przewodniku zobaczymy, jak skonfigurować klucze SSH na serwerze Ubuntu 20.04 LTS.

Sprawdź, czy masz na swoim komputerze istniejący klucz SSH

Aby sprawdzić, czy para kluczy SSH już istnieje na twoim komputerze, wpisz to polecenie w swoim terminalu.

ls -l ~/.ssh/id_*.pub

Jeśli powyższe polecenie zwraca no such file or directorylub no matches found, oznacza to, że para kluczy SSH nie istnieje.

Jeśli masz istniejącą parę kluczy SSH, możesz użyć tej samej pary kluczy, aby uzyskać dostęp do dwóch serwerów zdalnych, lub możesz również utworzyć inną parę kluczy o innej nazwie. Przejdźmy do następnego kroku i zobaczmy, jak wygenerować klucze SSH dla obu przypadków.

Tworzenie kluczy SSH na komputerze klienckim

Aby wygenerować nową parę kluczy SSH na komputerze, wpisz polecenie, jak pokazano poniżej.

ssh-keygen

Domyślnie klucze SSH mają 2048 bitów. Dla większego bezpieczeństwa, jeśli chcesz generować klucze SSH z wyższymi bitami, użyj następującego polecenia.

ssh-keygen -b 4096

Jeśli polecenie zostanie wykonane pomyślnie, na ekranie pojawi się następujący komunikat.

generowanie pary kluczy publiczny/prywatny rsa.
Wpisz plik, w którym chcesz zapisać klucz (/home/harshit/.ssh/id_rsa):

Teraz, jeśli nie masz na komputerze żadnej istniejącej pary kluczy SSH, po prostu naciśnij Enter, ale jeśli masz istniejący klucz SSH, zapisz klucz pod inną nazwą pliku, jak pokazano poniżej.

Wpisz plik, w którym chcesz zapisać klucz (/home/twoja_nazwa/.ssh/id_rsa): /home/twoja_nazwa/.ssh/id_rsa_xxx

Zastąp xxxkońcówkę nazwy pliku odpowiednią nazwą, jak pokazano poniżej i naciśnij Enter.

Wpisz plik, w którym chcesz zapisać klucz (/home/twoja_nazwa/.ssh/id_rsa): /home/twoja_nazwa/.ssh/id_rsa_klient_1

Następny monit poprosi Cię o wprowadzenie hasła o dowolnej długości, zapewni to dwupoziomowe bezpieczeństwo urządzenia. 

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Wpisanie tego hasła zapewni, że nawet jeśli dana osoba uzyska dostęp do twojego klucza prywatnego, nie będzie mogła uzyskać dostępu do twojego zdalnego serwera bez tego hasła.

Po zakończeniu całego procesu na ekranie pojawi się następujący komunikat.

Jak dodać klucze SSH w Ubuntu 20.04

Klucze SSH zostały wygenerowane w Twoim systemie. Teraz czas na skopiowanie klucza publicznego na zdalny serwer.

Kopiowanie klucza publicznego na zdalny serwer Ubuntu

Najłatwiejszą i najszybszą metodą skopiowania klucza publicznego na zdalny serwer jest użycie ssh-copy-idnarzędzia. Ale jeśli to narzędzie nie jest dostępne na twoim komputerze z jakiegoś powodu, możesz również użyć innych metod przedstawionych w tej sekcji.

Korzystanie z narzędzia ssh-copy-id

ssh-copy-idNarzędzie jest domyślnie dostępny na komputerze Ubuntu których kopie klucza publicznego z urządzenia do odpowiedniego katalogu swoim komputerze zdalnym.

Aby skopiować publiczny klucz ssh, po prostu wpisz polecenie w swoim terminalu, jak pokazano poniżej.

ssh-copy-id [email protected]

Zastąp usernamei hostnamew powyższym poleceniu nazwą użytkownika i nazwą hosta swojego serwera.

Poniższy komunikat pojawi się na twoim terminalu, jeśli łączysz się z hostem po raz pierwszy, wpisz yesi naciśnij Enter.

Nie można ustalić autentyczności hosta „172.105.XX.XX (172.105.XX.XX)”.
Odcisk palca klucza ECDSA to xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx.
Czy na pewno chcesz kontynuować połączenie (tak/nie)? tak

Teraz ssh-copy-idnarzędzie wyszuka plik o nazwie id_rsa.pubzawierającej publiczny klucz SSH. Po zakończeniu procesu skanowania zostanie wyświetlony monit o wprowadzenie hasła do zdalnego serwera, jak pokazano poniżej. Wpisz hasło i naciśnij Enter.

/usr/bin/ssh-copy-id: INFO: próba zalogowania się przy użyciu nowych kluczy, aby odfiltrować te, które są już zainstalowane
/usr/bin/ssh-copy-id: INFO: 1 klucz(e) pozostało do zainstalowania -- jeśli teraz pojawi się monit, jest to instalacja nowych kluczy
Hasło użytkownika [email protected] :

Po dodaniu klucza na terminalu pojawi się następujący komunikat jako dane wyjściowe.

Liczba dodanych kluczy: 1
Teraz spróbuj zalogować się do komputera za pomocą: „ssh ' [email protected] '” i upewnij się, że dodano tylko żądany klucz.

Jeśli masz wiele kluczy SSH na komputerze klienckim, aby skopiować odpowiedni klucz publiczny na komputer zdalny, wpisz polecenie według wzoru pokazanego poniżej.

ssh-copy-id -i id_rsa_xxx.pub [email protected]

💡 Wskazówka

Nie zapomnij umieścić .pub na końcu nazwy pliku podczas pisania w terminalu.

Kopiowanie klucza publicznego metodą rurociągów

Wpisz następujące polecenie w terminalu, jeśli ssh-copy-idnarzędzie nie jest dostępne. To polecenie może wydawać się nieco dłuższe, ale działa poprawnie.

cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Zastąp remote_usernamei server_ip_addressswoją nazwą użytkownika i adresem IP.

Jeśli na komputerze dostępnych jest wiele kluczy SSH, zastąp id_rsa.pubje wybranym plikiem publicznego klucza SSH. Na przykład id_rsa_client_1.pub.

Po wyświetleniu monitu wpisz hasło użytkownika zdalnego i naciśnij Enter.

[email protected]'s password:

Po wpisaniu hasła id_rsa.pubplik zostanie skopiowany do authorized_keyspliku na serwerze zdalnym.

Ręczne kopiowanie klucza publicznego

Użyj tej metody, jeśli nie masz dostępu do zdalnego systemu poprzez uwierzytelnianie hasłem.

Otwórz id_rsa.pubplik za pomocą catpolecenia w terminalu. Możesz go również otworzyć z edytora tekstu, celem jest po prostu skopiowanie zawartości pliku.

cat ~/.ssh/id_rsa.pub

Zawartość pliku będzie wyglądać tak, jak pokazano poniżej.

ssh rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [e zabezpieczone] _PC

Teraz zaloguj się do zdalnego serwera i wklej skopiowaną zawartość za pomocą polecenia pokazanego poniżej. Zastąp the above_stringskopiowaną zawartością.

echo above_string >> ~/.ssh/authorized_keys

Konfiguracja wielu kluczy SSH (opcjonalnie)

Ten krok jest przeznaczony dla osób, które mają skonfigurowanych wiele kluczy SSH na swoim komputerze klienckim. Pomiń tę sekcję, jeśli masz tylko jedną konfigurację klucza SSH.

Aby zarządzać wieloma kluczami SSH, utworzymy teraz configplik w .sshkatalogu za pomocą polecenia pokazanego poniżej.

cd ~/.ssh
vim config

Wpisz, iaby przejść do trybu poleceń i wpisz szczegóły wielu hostów, jak pokazano w poniższym przykładzie:

Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1

Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2

Podobnie wpisz szczegóły innych serwerów zdalnych i ich klucze. Po zakończeniu procesu naciśnij Esci , :wqaby zapisać i wyjść.

Teraz kolejne procesy są takie same w przypadku posiadania jednego lub wielu kluczy SSH na komputerze klienckim.

Zaloguj się do zdalnego serwera za pomocą kluczy SSH

Po zakończeniu procesu kopiowania klucza publicznego zaloguj się do zdalnego serwera, wpisując polecenie, jak pokazano poniżej.

ssh [email protected]_ip_address

Jeśli podałeś hasło podczas generowania pary kluczy, zostaniesz poproszony o jego wprowadzenie. Nowa sesja zostanie otwarta po zakończeniu procesu uwierzytelniania.

Pomyślnie skonfigurowałeś uwierzytelnianie oparte na kluczach SSH na serwerze zdalnym. Ale uwierzytelnianie oparte na hasłach jest nadal aktywne na twoim serwerze, co oznacza, że ​​twój zdalny serwer jest nadal podatny na ataki siłowe.

Więc teraz całkowicie wyłączymy mechanizm logowania oparty na hasłach z naszego zdalnego serwera.

Wyłącz mechanizm logowania oparty na hasłach

Przed wprowadzeniem jakichkolwiek zmian upewnij się, że użytkownik root lub dowolny użytkownik z włączoną obsługą sudo dla Twojego konta zdalnego ma dostęp do Twojego serwera za pomocą systemu uwierzytelniania opartego na kluczu SSH. Ten krok całkowicie zablokuje lub wyłączy logowanie oparte na hasłach, dlatego ważne jest, aby co najmniej jeden użytkownik z uprawnieniami roota miał dostęp do serwera za pośrednictwem klucza SSH.

Zaloguj się do zdalnego serwera Ubuntu i wpisz polecenie pokazane poniżej.

sudo vim /etc/ssh/sshd_config
  • Naciśnij Esc, /wpisz „PasswordAuthentication” i naciśnij enter
  • Teraz naciśnij ii zmień wartość „PasswordAuthentication yes” na „PasswordAuthentication no”.
  • Naciśnij Esci powtórz powyższy proces, aby znaleźć „ChallengeResponseAuthentication”, „UsePAM”, a także zmień ich wartości no.
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Gdy wszystkie wartości są ustawione na no, naciśnij Esc, wpisz :wqi naciśnij enter.

Aby aktywować wszystkie zmiany, uruchom ponownie sshusługę za pomocą poniższego polecenia.

sudo systemctl restart ssh

Teraz otwórz nowe okno terminala na swoim komputerze i przed zamknięciem bieżącej sesji sprawdź, czy uwierzytelnianie za pomocą klucza SSH działa poprawnie.

Po zakończeniu procesu weryfikacji zamknij wszystkie uruchomione sesje.

Pomyślnie skonfigurowaliśmy uwierzytelnianie oparte na kluczu SSH na naszym serwerze Ubuntu 20.04. Teraz nikt nie może zalogować się do Twojego serwera za pomocą mechanizmu logowania opartego na hasłach. 


10 najlepszych aplikacji do wideokonferencji dla systemu Linux

10 najlepszych aplikacji do wideokonferencji dla systemu Linux

Dla freelancerów i pracowników, którzy regularnie pracują w domu, komunikacja zdalna jest jedną z wielu rzeczy, o które trzeba zadbać. Obecnie dla wielu z nas wideokonferencje zastąpiły spotkania w biurze. Narzędzia takie jak Zoom i Skype odnotowały ogromny wzrost.

Jak zainstalować serwer FTP na Ubuntu w 5 krokach

Jak zainstalować serwer FTP na Ubuntu w 5 krokach

Jeśli konfigurujesz serwer Linux, będziesz potrzebować dostępu do FTP. Oznacza to najpierw zainstalowanie serwera FTP w systemie Linux. Powinna to być jedna z pierwszych rzeczy, które robisz po zainstalowaniu systemu operacyjnego serwera.

Jak łatwo szyfrować i odszyfrowywać pliki i katalogi w systemie Linux

Jak łatwo szyfrować i odszyfrowywać pliki i katalogi w systemie Linux

Czy kiedykolwiek chciałeś szybko i łatwo szyfrować pliki w systemie Linux bez konieczności instalowania i uczenia się nowych pakietów oprogramowania? Oto doskonały i łatwy sposób na łatwe szyfrowanie plików lub katalogów za pomocą AES256 zabezpieczonego hasłem, co pomaga trzymać pliki z dala od wścibskich oczu.

Jak naprawić make: polecenie nie zostało znalezione Błąd w Ubuntu

Jak naprawić make: polecenie nie zostało znalezione Błąd w Ubuntu

Polecenie make jest prawdopodobnie jednym z najczęściej używanych poleceń w ekosystemie Linuksa. To polecenie służy do budowania i kompilowania programów bezpośrednio z kodu źródłowego.

Jak znaleźć i usunąć zduplikowane pliki w systemie Linux za pomocą fdupes

Jak znaleźć i usunąć zduplikowane pliki w systemie Linux za pomocą fdupes

Podczas pracy z dużą ilością multimediów i dokumentów często zdarza się, że na komputerze gromadzi się wiele kopii tego samego pliku. Nieuchronnie pojawia się zaśmiecona przestrzeń dyskowa wypełniona zbędnymi plikami, co powoduje okresowe sprawdzanie duplikatów plików w systemie.

Stabilne czy Bleeding-Edge Dystrybucje Linuksa: Którą z nich wybrać?

Stabilne czy Bleeding-Edge Dystrybucje Linuksa: Którą z nich wybrać?

Jednym z głównych wyborów, przed którymi staje wielu użytkowników Linuksa przy wyborze dystrybucji Linuksa, jest jej stabilność lub to, jak bardzo zmienia się oprogramowanie.

Czy rok 2020 jest rokiem pandemii szkodliwego oprogramowania dla Linuksa?

Czy rok 2020 jest rokiem pandemii szkodliwego oprogramowania dla Linuksa?

Jego reputacja w zakresie bezpieczeństwa oznacza, że ​​Linux jest często uważany za mniej podatny na rodzaje zagrożeń, które regularnie nękają systemy Microsoft Windows. Wiele z tego postrzeganego bezpieczeństwa pochodzi ze stosunkowo małej liczby systemów Linux, ale czy cyberprzestępcy zaczynają dostrzegać wartość w wybieraniu jakości, a nie ilości?

Jak pobrać i zainstalować uGet Download Manager w systemie Linux

Jak pobrać i zainstalować uGet Download Manager w systemie Linux

Menedżery pobierania to popularne narzędzie do zarządzania wszystkimi pobranymi plikami w jednej aplikacji i zapewniają przydatne funkcje. Jeśli niedawno przeszedłeś z systemu operacyjnego Windows na Linuksa, być może szukasz alternatywy dla słynnego Internet Download Managera (IDM).

Notatki na Chromebookach ułatwiające kursywą

Notatki na Chromebookach ułatwiające kursywą

Cursive to progresywna aplikacja internetowa (PWA), którą firma Google wprowadziła wraz z wydaniem Chromebooka HP x2 11. Możesz używać tej aplikacji do robienia odręcznych notatek na Chromebooku wyposażonym w rysik.

Jak korzystać z Vima: Przewodnik po podstawach

Jak korzystać z Vima: Przewodnik po podstawach

Vim to najpotężniejszy i najbardziej wszechstronny edytor kodu dostępny dla systemów uniksopodobnych. Jest to rozszerzenie edytora Vi opracowanego przez Billa Joya. Vim jest domyślnie dostępny w większości systemów Linux i BSD.