Jak skonfigurować niestandardowe połączenia SSH w celu uproszczenia dostępu zdalnego

Jak skonfigurować niestandardowe połączenia SSH w celu uproszczenia dostępu zdalnego

Ssh (Klient SSH) to program do zdalnego dostępu do komputera, umożliwia użytkownikowi wykonywanie poleceń na zdalnym hoście. Jest to jedna z najbardziej zalecanych metod logowania się do zdalnego hosta, ponieważ jest zaprojektowany w celu zapewnienia bezpiecznej zaszyfrowanej komunikacji między dwoma niezaufanymi hostami nad niepewną siecią.

Ssh wykorzystuje zarówno system konfiguracji w całym systemie, jak i specyficzny dla użytkownika (niestandardowy). W tym samouczku wyjaśnimy, jak utworzyć niestandardowy plik konfiguracyjny SSH i użyć niektórych opcji do podłączenia do zdalnych hostów.

Wymagania:

  1. Musisz zainstalować klienta OpenSSH na swoim komputerze Linux.
  2. Zrozum typowe opcje używane do zdalnych połączeń za pośrednictwem SSH.

Pliki konfiguracji klienta SSH

Poniżej znajdują się lokalizacje plików konfiguracyjnych klienta SSH:

  1. /etc/ssh/ssh_config - To jest domyślny plik konfiguracyjny całego systemu. Zawiera ustawienia, które mają zastosowanie do wszystkich użytkowników komputera klienckiego SSH.
  2. ~/.ssh/config Lub $ Home/.ssh/config - to specyficzny dla użytkownika/niestandardowy plik konfiguracyjny. Ma konfiguracje, które mają zastosowanie do określonego użytkownika. Dlatego zastępuje ustawienia domyślne w pliku konfiguracji całego systemu. To jest plik, który będziemy tworzyć i użyć.

Domyślnie użytkownicy są uwierzytelnieni w SSH za pomocą haseł, jednak możesz skonfigurować logowanie SSH bez hasła za pomocą ssh keygen w 5 prostych krokach.

Notatka: W przypadku katalogu ~/.ssh nie istnieje w systemie komputerowym, utwórz go za pomocą następujących uprawnień.

$ mkdir -p ~//.ssh $ chmod 0700 ~/.ssh 

chmod Polecenie powyżej sugeruje, że tylko użytkownik może mieć uprawnienia do odczytu, zapisu i wykonywania w katalogu, zgodnie z wymogami ustawień SSH.

Jak utworzyć plik konfiguracyjny SSH specyficzny dla użytkownika

Ten plik zwykle nie jest tworzony domyślnie, więc musisz go utworzyć za pomocą uprawnień odczytu/zapisu tylko dla użytkownika.

$ touch ~/.ssh/config $ chmod 0700 ~/.ssh/config 

Powyższy plik zawiera sekcje zdefiniowane przez specyfikacje hostów, a sekcja jest stosowana tylko do hostów, które pasują do jednego z wzorców ustawionych w specyfikacji.

Konwencjonalny format ~/.ssh/config jest następujący, a wszystkie puste linie, a także linie zaczynające się od „#” są uważane za komentarze:

Host hosta1 ssh_option1 = wartość1 ssh_option2 = wartość 

Z powyższego formatu:

  1. Host host1 - jest definicją nagłówka dla host1, W tym momencie zaczyna się specyfikacja hosta i kończy się następną definicją nagłówka, Host Host2 tworzenie sekcji.
  2. host1, host2 są po prostu aliasami hosta do użycia w wierszu poleceń, nie są faktycznymi nazwami hostów zdalnych hostów.
  3. Opcje konfiguracji, takie jak ssh_option1 = wartość1, ssh_option2 = wartość1 wartość2 Zastosuj się do dopasowanego gospodarza i powinien być wcięty w celu dobrze zorganizowanego formatowania.
  4. Dla opcji, takiej jak ssh_option2 = wartość1 wartość2, wartość wartość 1 jest uważany za najpierw, więc wartość2.
  5. Definicja nagłówka Gospodarz * (Gdzie * to wzór - wielka karta, która pasuje do zera lub więcej znaków) będzie pasować do zera lub więcej hostów.

Wciąż biorąc pod uwagę powyższy format, w ten sposób SSH odczytuje plik konfiguracyjny. Jeśli wykonasz polecenie SSH, aby zdalnie uzyskać dostęp host1 Tak jak:

$ ssh host1 

Powyższe polecenie SSH robi następujące rzeczy:

  1. Dopasuj pseudonim hosta host1 w pliku konfiguracyjnym i stosuje zestaw opcji w nagłówku definicji, Host host1.
  2. Następnie przechodzi do następnej sekcji hosta, Host Host2 i stwierdza, że ​​nazwa podana w wierszu poleceń nie pasuje, więc nie używane są stąd żadne opcje.
  3. Przechodzi do ostatniej sekcji, Gospodarz *, który pasuje do wszystkich gospodarzy. Tutaj stosuje wszystkie opcje w tej sekcji do połączenia hosta. Ale nie może zastąpić żadnych wartości opcji, które są już używane w poprzednich sekcjach (y).
  4. To samo dotyczy host2.

Jak używać pliku konfiguracyjnego SSH specyficznego dla użytkownika

Po zrozumieniu, jak działa plik konfiguracji klienta SSH, możesz go utworzyć w następujący sposób. Pamiętaj, aby korzystać z opcji i wartości (aliasy hosta, numery portów, nazwy użytkowników itd.) Dotyczące środowiska serwera.

Otwórz plik konfiguracyjny z ulubionym edytorem:

$ vi ~/.ssh/config 

I zdefiniuj niezbędne sekcje:

Gospodarz Fedora25 Nazwa hosta 192.168.56.15 Port 22 ForwardX11 Brak hosta Centos7 Nazwa hosta 192.168.56.10 Port 22 ForwardX11 Brak hosta Ubuntu Nazwa hosta 192.168.56.5 Port 2222 ForwardX11 tak host * Użytkownik TecMint IdentityFile ~/.SSH/ID_RSA Protocol 2 Kompresja Tak ServerAliveInterval 60 ServerAliveCountMax 20 Info logowania 

Szczegółowe wyjaśnienie powyższych opcji konfiguracji SSH.

  1. Nazwa hosta - definiuje prawdziwą nazwę hosta do zalogowania się, alternatywnie, możesz użyć numerów IP, jest ona również dozwolona (zarówno w wierszu poleceń, jak i w Nazwa hosta specyfikacje).
  2. Użytkownik - Określa użytkownika, aby zalogować się jako.
  3. Port - Ustawia numer portu, aby połączyć się na zdalnym hoście, domyślnie jest 22. Użyj numeru portu skonfigurowanego w pliku konfiguracji hosta zdalnego hosta.
  4. Protokół - Ta opcja określa wersje protokołu SSH powinny obsługiwać w kolejności preferencji. Zwykłe wartości to „1” I „2”, Wiele wersji musi być oddzielone przecinkami.
  5. Plik tożsamości - Określa plik, z którego czytany jest DSA, ED25519, RSA lub ECDSA.
  6. Napastnik11 - Określa, czy połączenia X11 zostaną automatycznie przekierowane przez zestaw kanału i zestawu wyświetlania. Ma dwie możliwe wartości "Tak" Lub "NIE".
  7. Kompresja - Służy do ustawiania kompresji podczas zdalnego połączenia z "Tak" wartość. Domyślnie jest "NIE".
  8. ServerAliveInterval - ustawia przedział limitu limitu czasu w sekundach, po których jeśli serwer nie został odebrany żadna odpowiedź (lub dane), SSH wyśle ​​wiadomość za pośrednictwem kanału zaszyfrowanego, aby żądać odpowiedzi z serwera. Wartość domyślna to 0, co oznacza, że ​​żadne wiadomości nie zostaną wysłane na serwer, lub 300 Jeśli zdefiniowano opcję Batchmode.
  9. ServerAliveCountMax - Ustawia liczbę komunikatów żywych serwera, które mogą zostać wysłane bez otrzymania SSH jakąkolwiek odpowiedź z serwera.
  10. Loglevel - definiuje poziom gadatości używany podczas rejestrowania wiadomości z SSH. Dozwolone wartości obejmują: cichy, śmiertelny, błąd, informacje, w pełni debugowanie, debug1, debug2 i debug3. A domyślnie to informacje.

Standardowy sposób łączenia się z dowolnym zdalnym hostem Linux (Centos 7 - w moim przypadku), zdefiniowany w sekcji drugiej powyższego pliku konfiguracyjnego, normalnie wpisalibyśmy poniższe polecenie:

$ ssh -i ~/.ssh/id_rsa -p 22 [chroniony e -mail] 

Jednak przy użyciu pliku konfiguracji klienta SSH możemy po prostu wpisać następujące polecenie:

$ SSH CENTOS7 

Można znaleźć więcej opcji i przykładów użytkowania na stronie SSH Client Config Man:

$ man ssh_config 

To wszystko na razie, w tym przewodniku, wyjaśniliśmy, jak używać pliku konfiguracji klienta specyficznego dla użytkownika (niestandardowe) w Linux. Użyj poniższego formularza opinii, aby odpisać do nas dotyczącą tego artykułu.