SSH (Secure Shell) - protokół do tworzenia szyfrowanego połączenia między klientem a serwerem. Dzięki tej technologii możesz zdalnie sterować komputerem. Interakcja z narzędziem występuje w terminalu i domyślnie jest dodawana do systemu operacyjnego CentOS 7. Dlatego dzisiaj chcielibyśmy szczegółowo rozważyć standardową procedurę konfiguracji, która będzie przydatna dla każdego, kto będzie pracował z SSH.
Treść
Proces konfiguracji jest indywidualny dla każdego administratora systemu, ale nadal jest kilka elementów przydatnych dla wszystkich użytkowników. W tym artykule omówimy nie tylko komponent serwera, ale także komponent klienta, a także wskażemy, które urządzenie wykonuje określoną akcję.
Powiedzieliśmy już, że SSH jest domyślnie dodawany do listy bibliotek systemowych CentOS 7, ale czasami z jakiegoś powodu brakuje na komputerze niezbędnych składników. W takim przypadku będą musieli dodać, a następnie aktywować serwer.
sudo yum -y install openssh-server openssh-clients
tam polecenie sudo yum -y install openssh-server openssh-clients
. sudo chkconfig sshd on
. service sshd start
. netstat -tulpn | grep :22
netstat -tulpn | grep :22
. Po pomyślnym wykonaniu powyższych instrukcji możesz bezpiecznie przejść na początek konfiguracji. Chcielibyśmy zwrócić uwagę na fakt, że konieczne jest czytanie powiadomień wyświetlanych na ekranie podczas aktywacji poleceń. Mogą wskazywać na wystąpienie pewnych błędów. Szybka korekta wszystkich problemów pomoże uniknąć dalszych problemów.
Oczywiście plik konfiguracyjny jest edytowany tylko według uznania administratora systemu. Chcemy jednak pokazać, jak go uruchomić w edytorze tekstu i które elementy należy najpierw podkreślić.
sudo yum install nano
. Po zakończeniu instalacji uruchom plik konfiguracyjny za pomocą sudo nano /etc/ssh/sshd_config
. sudo service sshd restart
aby zmiany zaczęły obowiązywać. service sshd status
. Edycja pliku konfiguracyjnego zmienia wiele parametrów, ale główny proces - dodawanie i konfigurowanie kluczy - odbywa się za pomocą specjalnych poleceń, o których chcemy dalej mówić.
Algorytm kryptograficzny RSA (skrót od nazw Rivest, Shamir i Adleman) jest używany przez usługę SSH do tworzenia pary kluczy. Ta akcja umożliwia maksymalne zabezpieczenie części klienta i serwera podczas nawiązywania połączeń. Będziesz musiał użyć obu łańcuchów, aby utworzyć parę kluczy.
ssh-keygen
w konsoli. Po pomyślnym zakończeniu powyższych wytycznych pojawią się klucze publiczne i prywatne, które zostaną wykorzystane do uwierzytelnienia z serwerem w przyszłości. Jednak aby to zrobić, klucz musi zostać przeniesiony na serwer i wyłączyć wpis hasła.
Jak wspomniano powyżej, kopiowanie klucza jest niezbędne do dalszego uwierzytelniania bez hasła. Wykonanie takiej akcji może być jednym z trzech sposobów, z których każdy będzie najbardziej optymalny w pewnych sytuacjach. Przyjrzyjmy się im wszystkim w porządku.
Narzędzie Ssh-copy-id
Kopiowanie klucza publicznego za pomocą narzędzia ssh-copy-id jest najłatwiejszą metodą. Jednak jest to odpowiednie tylko wtedy, gdy to narzędzie jest obecne na komputerze. Musisz zarejestrować tylko jedną ssh-copy-id username@remote_host
, gdzie nazwa_użytkownika @ remote_host to nazwa użytkownika i host zdalnego serwera.
Jeśli połączenie zostanie nawiązane po raz pierwszy, na ekranie pojawi się komunikat o podobnym charakterze:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)?
Oznacza to, że serwer nie znajduje się na liście zaufanych źródeł i zostanie zapytany, czy warto nawiązać dalsze połączenie. Wybierz opcję yes
.
Pozostaje tylko wprowadzić hasło do konta serwera, a procedura kopiowania za pomocą wyżej wymienionego narzędzia zostanie zakończona pomyślnie.
Kopiowanie klucza publicznego przez SSH
W przypadku braku narzędzia ssh-copy-id zalecamy korzystanie ze standardowych funkcji narzędzia SSH, jeśli oczywiście masz dostęp do konta serwera. Rozładunek kluczy odbywa się za pomocą zwykłego połączenia, a mianowicie:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
, gdzie nazwa_użytkownika @ zdalny_host to nazwa konta i hosta komputera zdalnego. Zauważ, że opcja >> doda klucz do końca pliku i nie zastąpi go całkowicie. Dlatego wcześniej wprowadzone klucze również zostaną zapisane. sudo service sshd restart
aby zaktualizować listy kluczy. Ręczna kopia klucza publicznego
Czasami zdarzają się sytuacje, w których niemożliwe jest użycie narzędzia ssh-copy-id , a także brak dostępu do hasła. Następnie kopiowanie odbywa się ręcznie.
cat ~/.ssh/id_rsa.pub
w konsoli. mkdir -p ~/.ssh
. Komenda nic nie zrobi, jeśli katalog już istnieje. echo public_key_string >> ~/.ssh/authorized_keys
doda klucz do pliku lub najpierw utworzy plik, jeśli go brakuje. Zamiast „public_key_string”, musisz wstawić poprzednio otrzymany łańcuch kluczem. To zakończy pomyślnie procedurę kopiowania kluczy. Z tego powodu uwierzytelnianie serwera jest teraz dostępne po wprowadzeniu ssh username@remote_host
. Można jednak połączyć się za pomocą hasła, co obniża bezpieczeństwo takiej sieci.
Wyłączenie możliwości logowania za pomocą hasła, z pominięciem klucza, czyni takie zdalne połączenie mniej bezpiecznym. Dlatego zaleca się wyłączenie tej funkcji, aby zapobiec nieautoryzowanemu uwierzytelnieniu przez intruzów.
sudo nano /etc/ssh/sshd_config
. no
. sudo systemctl restart sshd.service
. Ten artykuł, w którym zapoznałeś się z podstawowymi punktami konfiguracji protokołu SSH, dobiega końca. Zdecydowanie zalecamy sprawdzenie zawartości wyjścia po aktywacji poleceń, ponieważ czasami występują opisy błędów. Poszukaj ich rozwiązania w oficjalnej dokumentacji narzędzia lub dystrybucji CentOS.