CH-J Server ManagerZarządzanie serwerem przez SSH
Menu
Wszystkie poradniki i artykuły →

Jak zarządzać wieloma serwerami SSH jednocześnie

Uporządkuj pracę z wieloma serwerami dzięki aliasom SSH i terminalom obok siebie oraz unikaj wykonywania poleceń na niewłaściwym serwerze.

Nadaj każdemu serwerowi czytelną nazwę

Spójny alias oszczędza czas i ogranicza pomyłki. W ~/.ssh/config przechowuj adres, użytkownika, port i klucz każdego serwera pod jedną nazwą, a w nazwie uwzględnij rolę i środowisko, aby od razu rozpoznać produkcję. Dla opcji nieustawionych dla konkretnego hosta obowiązują wartości z bloku Host *.

Host prod-web-1
    HostName 203.0.113.10
    User admin
    IdentityFile ~/.ssh/id_ed25519_prod
    IdentitiesOnly yes

Host test-web-1
    HostName 203.0.113.20
    User admin

Unikaj pracy na niewłaściwym serwerze

Podczas pracy na wielu serwerach łatwo wpisać polecenie w niewłaściwym oknie. Wyświetlaj nazwę hosta w znaku zachęty, na produkcji używaj innego koloru znaku zachęty i przed każdą destrukcyjną operacją sprawdzaj, gdzie jesteś. Najbardziej niebezpieczne kroki zostaw na chwilę, gdy otwarty jest tylko jeden terminal.

hostname -f; whoami; pwd

Utrzymaj długie zadania w działaniu

Zerwane połączenie zwykle kończy powłokę i uruchomione w niej polecenia. Długie zadania uruchamiaj na serwerze w tmux lub screen, aby działały dalej i można było ponownie się do nich podłączyć. Mechanizm keepalive klienta szybciej wykrywa zerwane połączenie, ale sam nie podtrzymuje działania zadania.

tmux new -s upgrade
tmux attach -t upgrade

Sprawdź, które serwery odpowiadają

Przed rozpoczęciem pracy na wielu serwerach sprawdź, czy ich porty SSH odpowiadają. Zamknięty port nie zawsze oznacza, że serwer nie działa: usługa mogła się zatrzymać albo zapora może blokować Twoją sieć.

for host in prod-web-1 test-web-1; do
    ssh -o ConnectTimeout=5 "$host" 'hostname; uptime' || echo "$host: no connection"
done

Wiele serwerów w CH-J Server Manager

Profile serwerów są przechowywane w lokalnym szyfrowanym sejfie, a jednocześnie można otworzyć wiele sesji SSH. W Alpha 0.1.1 dwa terminale są wyświetlane obok siebie lub jeden nad drugim, na jednym albo dwóch serwerach, a ukrycie terminala nie kończy jego sesji. Moduły automatycznie używają jedynego otwartego połączenia, a gdy jest ich więcej, pytają o wybór, więc moduł nigdy sam nie przełącza się na inny serwer. Zablokowanie sejfu rozłącza sesje SSH, dlatego najpierw zakończ trwające zadania lub pozostaw je w tmux.

Dostępność na pierwszy rzut oka

W Alpha 0.1.1 monitor dostępności sprawdza zapisane serwery w tle za pomocą połączenia TCP z portem SSH, domyślnie co 12 sekund, bez logowania. Status offline oznacza wtedy, że port SSH jest nieosiągalny z Twojej sieci; sam serwer może nadal działać.

Dokumentacja szczegółowa

OpenSSH: ssh_config →

Biometryczne odblokowanie i bezpieczeństwo →