Перейти к содержимому

SSH-доступ к удалённым машинам

Модуль SSH-доступа позволяет обслуживать второй сервер (например, машину с нодой) прямо из меню скрипта на панели: обновить пакеты, перезапустить контейнер ноды, посмотреть логи, не открывая вторую SSH-сессию. Другой модуль, серверный роутинг, использует этот доступ автоматически, когда ставит ноду на вторую машину.

  • Пароль спрашивается один раз. Скрипт установит свой ключ и забудет пароль: на диск он не пишется никогда.
  • Ваш ключ не читается. Собственный ключ используется по пути, содержимое не копируется и не открывается.
  • Одна строка в authorized_keys. Ключ скрипта живёт отдельной строкой с пометкой remnawave-reverse-proxy, ваши строки не трогаются.

Пункт находится в меню скрипта: 4. Расширения ноды → SSH-доступ к удалённой машине.

Скрипт сам предложит самый простой путь:

  1. Проба существующих ключей. Если на этой машине уже есть ключ, который открывает второй сервер, скрипт молча возьмёт его: вопросы не задаются, на удалённой машине ничего не меняется.
  2. Указать свой ключ. Если ключ лежит здесь, но не нашёлся автоматически, можно указать путь до него.
  3. Пароль root один раз. Скрипт спросит пароль (ввод скрыт), установит свой отдельный ключ и забудет его.
  4. Ручная вставка. Для серверов с закрытым парольным входом скрипт покажет свой публичный ключ и команду, которую нужно выполнить на второй машине. Проверка результата повторяется по EnterEnterEnter, выход из ожидания клавишей QQQ.

Машин может быть сколько угодно. Список выглядит так:

SSH-доступ к удалённым машинам
Настроено машин: 2
1. root@203.0.113.20:22 (Kazan)
2. root@203.0.113.5:22 (Frankfurt)
3. Настроить новую машину
0. Выход

При настройке можно задать каждой машине название: оно отображается в скобках рядом с адресом и переименовывается в любой момент. Ключ у всех машин один (панель = одна точка доступа), но на каждой машине своя строка в authorized_keys.

Пункт «Выполнить команду» в меню машины запускает команду на удалённом сервере, вывод приходит в терминал, в конце скрипт покажет код завершения. Типовые сценарии:

Обновление пакетов на удалённой машине
apt update && apt upgrade -y
Обновление ноды (команды стартуют в /root, compose нужен cd)
cd /opt/remnanode && docker compose pull && docker compose up -d
Логи ноды
docker logs remnanode --tail 50
Под капотом: где это хранится

Все данные доступа лежат на панели в /usr/local/remnawave_reverse:

  • Директория/usr/local/remnawave_reverse
    • Директорияremote-exec
      • 203.0.113.20_22.target (машина: адрес, порт, пользователь, ключ, название)
      • 203.0.113.5_22.target
    • remote-exec.active (какая машина использовалась последней)
    • Директорияssh
      • id_ed25519 (ключ скрипта, один на все машины)
      • known_hosts

Файлы .target обычные key=value, правятся вручную только в крайнем случае: меню переименования и перенастройки делает то же самое безопаснее.

Пункт «Отозвать доступ» удаляет строку скрипта из authorized_keys на удалённой машине, стирает локальный ключ (если им больше никто не пользуется) и забывает машину. Ваш собственный доступ к серверу при этом не меняется никак.