CH-J Server Managerуправление серверами через SSH
Меню
Все руководства и статьи →

Как управлять несколькими SSH-серверами одновременно

Организуйте работу с несколькими серверами с помощью псевдонимов SSH и расположенных рядом терминалов, чтобы не выполнить команду не на том сервере.

Дайте каждому серверу понятное имя

Единообразные псевдонимы экономят время и сокращают число ошибок. В ~/.ssh/config объедините адрес, пользователя, порт и ключ каждого сервера под одним именем, включив в него роль и окружение, чтобы рабочую среду было видно сразу. Параметры, не заданные для конкретного хоста, берутся из блока 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

Не перепутайте сервер

При работе с несколькими серверами легко ввести команду не в том окне. Показывайте имя хоста в приглашении командной строки, используйте другой цвет приглашения в рабочей среде и перед любыми разрушительными действиями проверяйте, где вы находитесь. Самые опасные шаги выполняйте, когда открыт только один терминал.

hostname -f; whoami; pwd

Сохраните выполнение длительных задач

Разрыв соединения обычно завершает оболочку и выполняемые в ней команды. Запускайте длительные задачи на сервере внутри tmux или screen, чтобы они продолжали работать и к ним можно было подключиться снова. Клиентский keepalive раньше обнаруживает неработающее соединение, но сам по себе не сохраняет выполнение задачи.

tmux new -s upgrade
tmux attach -t upgrade

Узнайте, какие серверы отвечают

Перед началом работы с несколькими серверами проверьте, отвечают ли их порты SSH. Закрытый порт не всегда означает, что сервер не работает: служба могла остановиться или межсетевой экран может блокировать вашу сеть.

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

Несколько серверов в CH-J Server Manager

Профили серверов хранятся в локальном зашифрованном хранилище; одновременно можно открыть несколько сеансов SSH. В Alpha 0.1.1 два терминала располагаются рядом или друг над другом, на одном или двух серверах, а скрытие терминала не завершает его сеанс. Модули автоматически используют единственное соединение и запрашивают выбор, если открыто несколько, поэтому модуль никогда сам не переходит на другой сервер. Блокировка хранилища разрывает сеансы SSH, поэтому сначала завершите текущую работу или оставьте её в tmux.

Доступность с первого взгляда

В Alpha 0.1.1 монитор доступности проверяет сохранённые серверы в фоновом режиме через TCP-соединение с портом SSH, по умолчанию каждые 12 секунд, без входа в систему. Статус «не в сети» означает, что порт SSH недоступен из вашей сети; сам сервер при этом может продолжать работать.

Подробная документация

OpenSSH: ssh_config →

Биометрическое разблокирование и безопасность →