GNU/Linux
Bezpieczna powłoka (SSH)
Szukaj…
Wprowadzenie
Bezpieczna powłoka służy do zdalnego dostępu do serwera z klienta za pośrednictwem szyfrowanego połączenia. OpenSSH jest używany jako alternatywa dla połączeń Telnet, które uzyskują zdalny dostęp do powłoki, ale są niezaszyfrowane. Klient OpenSSH jest domyślnie instalowany w większości dystrybucji GNU / Linux i służy do łączenia się z serwerem. Te przykłady pokazują, jak używać pakietu SSH do akceptowania połączeń SSH i łączenia się z innym hostem.
Łączenie ze zdalnym serwerem
Aby połączyć się z serwerem, musimy użyć SSH na kliencie w następujący sposób,
# ssh -p port user@server-address
- port - nasłuchujący port ssh serwera (domyślny port 22).
- użytkownik - musi być istniejącym użytkownikiem na serwerze z uprawnieniami SSH.
- adres serwera - adres IP / domena serwera.
Dla prawdziwego świata przykład pozwala udawać, że tworzysz stronę internetową. Firma, którą wybrałeś do hostowania swojej witryny, informuje cię, że serwer znajduje się na web-servers.com na niestandardowym porcie w 2020 roku, a nazwa twojego konta usr1 została wybrana do utworzenia użytkownika na serwerze z uprawnieniami SSH. W takim przypadku użyte byłoby polecenie SSH
# ssh -p 2020 [email protected]
Jeśli nazwa konta w systemie zdalnym jest taka sama jak nazwa klienta lokalnego, możesz pominąć nazwę użytkownika. Więc jeśli jesteś usr1
w obu systemach, to po prostu używasz web-servers.com
zamiast [email protected]
.
Jeśli serwer, z którym chcesz się połączyć, nie jest dla ciebie bezpośrednio dostępny, możesz spróbować użyć przełącznika ProxyJump, aby połączyć się z nim przez inny serwer, który jest dostępny dla ciebie i może połączyć się z wybranym serwerem.
# ssh -J [email protected]:2020 [email protected] -p 2222
Umożliwi to połączenie się z serwerem 10.0.0.2 (uruchamianie ssh na porcie 2222) przez serwer w wersji 10.0.0.1 (uruchamianie ssh na porcie 2020). Oczywiście musisz mieć konta na obu serwerach. Zauważ też, że przełącznik -J został wprowadzony w wersji 7.3 OpenSSH.
Instalowanie pakietu OpenSSH
Zarówno połączenie z usuniętym serwerem SSH, jak i zaakceptowanie połączeń SSH wymaga instalacji openssh
Debian:
# apt-get install openssh
Arch Linux:
# pacman -S openssh
Mniam:
# yum install openssh
Wygeneruj klucz publiczny i prywatny
Aby wygenerować klucze dla klienta SSH:
ssh-keygen [-t rsa | rsa1 | dsa ] [-C <comment>] [-b bits]
Na przykład:
ssh-keygen -t rsa -b 4096 - C [email protected]
Domyślna lokalizacja to ~/.ssh/id_rsa
dla prywatnego i ~/.ssh/id_rsa.pub
dla klucza publicznego.
Aby uzyskać więcej informacji, odwiedź man.openbsd.org
Konfigurowanie serwera SSH do akceptowania połączeń
Najpierw musimy edytować plik konfiguracyjny demona SSH. Chociaż w różnych dystrybucjach Linuksa może to znajdować się w różnych katalogach, zwykle jest przechowywane w /etc/ssh/sshd_config
Użyj edytora tekstu, aby zmienić wartości ustawione w tym pliku, wszystkie wiersze zaczynające się od # są komentowane i należy usunąć ten znak, aby zadziałał. Poniżej znajduje się lista zaleceń.
Port (chose a number between 0 - 65535, normaly greater than four digits)
PasswordAuthentication yes
AllowUsers user1 user2 ...etc
Należy pamiętać, że zaleca się wyłączenie logowania wszystkich haseł i użycie kluczy SSH w celu zwiększenia bezpieczeństwa, jak wyjaśniono w tym dokumencie.
Wyłącz usługę ssh
Spowoduje to wyłączenie usługi po stronie serwera SSH, ponieważ w razie potrzeby zapewni to, że klienci nie będą mogli połączyć się przez ssh
Ubuntu
sudo service ssh stop
Debian
sudo /etc/init.d/ssh stop
Arch Linux
sudo killall sshd
Połączenie bez hasła (za pomocą pary kluczy)
Przede wszystkim musisz mieć parę kluczy. Jeśli jeszcze go nie masz, zapoznaj się z tematem „Generowanie klucza publicznego i prywatnego”.
Twoja para kluczy składa się z klucza prywatnego (id_rsa) i klucza publicznego (id_rsa.pub). Wystarczy skopiować klucz publiczny do zdalnego hosta i dodać jego zawartość do pliku ~/.ssh/authorized_keys
.
Jednym prostym sposobem na to jest:
ssh <user>@<ssh-server> 'cat >> ~/.ssh/authorized_keys' < id_rsa.pub
Po prawidłowym umieszczeniu klucza publicznego w katalogu domowym użytkownika wystarczy zalogować się przy użyciu odpowiedniego klucza prywatnego:
ssh <user>@<ssh-server> -i id_rsa