Jak włączyć SSH na Ubuntu 20.04
Bezpieczny dostęp do komputera Ubuntu z dowolnego miejsca
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 directory
lub 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 xxx
koń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.
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-id
narzę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-id
Narzę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 username
i hostname
w 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 yes
i 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-id
narzędzie wyszuka plik o nazwie id_rsa.pub
zawierają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-id
narzę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_username
i server_ip_address
swoją nazwą użytkownika i adresem IP.
Jeśli na komputerze dostępnych jest wiele kluczy SSH, zastąp id_rsa.pub
je 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.pub
plik zostanie skopiowany do authorized_keys
pliku 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.pub
plik za pomocą cat
polecenia 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_string
skopiowaną 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 config
plik w .ssh
katalogu za pomocą polecenia pokazanego poniżej.
cd ~/.ssh
vim config
Wpisz, i
aby 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 Esc
i , :wq
aby 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
Esc
, /
wpisz „PasswordAuthentication” i naciśnij enter
. i
i zmień wartość „PasswordAuthentication yes” na „PasswordAuthentication no”.Esc
i 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 :wq
i naciśnij enter
.
Aby aktywować wszystkie zmiany, uruchom ponownie ssh
usł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.
Bezpieczny dostęp do komputera Ubuntu z dowolnego miejsca
Ścisłe zabezpieczenia online stały się dla wielu z nas obowiązkowe, a ponieważ złośliwi operatorzy stają się coraz mądrzejsi, narzędzia i zabezpieczenia muszą stać się silniejsze, aby nadążyć. Secure Shell (SSH) to protokół szyfrowania, który umożliwia bezpieczne wysyłanie danych poprzez powiązanie klucza publicznego z dopasowaniem prywatnym.
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.
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.
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.
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.
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.
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.
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?
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).
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.
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.