Назад | Перейти на главную страницу

Будет ли «инициализация 1» из удаленного (через VPN) сеанса ssh уничтожить мое ssh-соединение

Название говорит само за себя. но вот сценарий:

  1. Подключен к работе через VPN
  2. на клиенте Linux
  3. ssh root@server.company.com
  4. инициализация 1

Будет ли переход в "однопользовательский режим" через "init 1" убивать и отключать мою корневую сессию ssh?

Да, будет. Большинство служб не работают на уровне запуска 1.

Все должно быть в порядке. В то время как демон прослушивателя SSH остановлен на уровне выполнения 1 в большинстве дистрибутивов, существующие соединения должны оставаться активными, и это не должно влиять на работу сети. Я бы не стал делать это без подключения какой-то удаленной консоли - вы никогда не знаете, когда появится мошенническая солнечная вспышка и разорвет ваши сетевые подключения на достаточно долгое время, чтобы убить ваш сеанс SSH.

РЕДАКТИРОВАТЬ: Некоторые тесты показывают, что, по крайней мере, в системах Debian, /etc/rc1.d/S30killprocs отключит существующие SSH-соединения (потому что убивает все). Я был бы склонен временно отключить этот скрипт и выполнить его работу вручную (избегая соединений SSH), если бы я попытался сделать то, что вы хотите сделать. Однако я все же предпочел бы использовать удаленную консоль.

Извините, что поднял вопрос после такого долгого времени. Мне нужен был ответ на этот же вопрос. Текущие ответы не подходят для моей коробки. Мои выводы относятся к установке на базе Centos 5.11.

  1. Причина отключения клиента ssh заключается в том, что init 1 делает что-то вроде service network stop. Я наблюдаю, что все сетевые интерфейсы отключаются и теряют конфигурацию. ip a и ifconfig -a подтвердите это.

  2. init 1 останавливается sshd слушатель процесса. Это не останавливается sshd дочерний процесс, который проводит сеанс для подключенного клиента. Сессия ssh в конечном итоге прерывается из-за тайм-аута TCP, потому что сеть выходит из строя, сеанс ssh не прерывается. Если я восстановлю сеть service network start на консоли достаточно быстро, тогда мои клиенты остаются подключенными, даже если ящик находится на уровне выполнения 1.

  3. Вопрос касается VPN. Если вы собираетесь использовать VPN-сервер, он находится на коробке, где вы делаете init 1 тогда да, вы обычно будете отключены, потому что VPN-сервер по умолчанию НЕ будет работать на уровне выполнения 1.

Моя работа, чтобы перевести систему на уровень выполнения 1 без потери сеансов ssh, заключается в том, чтобы временно настроить необходимые службы для продолжения работы на уровне выполнения 1. Все основано на Centos 5.11. YMMV. Отказ от ответственности: Я бы не хотел полагаться на это в работе.

    # keep network interfaces up
    chkconfig --level 1 network on
    # if you are connecting though VPN e.g. OpenVPN running on same server
    chkconfig --level 1 openvpn on
    # While at it, might as well keep SSHD running, so you can reconnect
    chkconfig --level 1 sshd on

    init 1
    # look for messages that indicate that run level has been reached
    tail -F /var/log/messages
    # Aug 31 14:21:19 pabx-demo kernel: Kernel logging (proc) stopped.
    # Aug 31 14:21:19 pabx-demo kernel: Kernel log daemon terminating.
    # Aug 31 14:21:20 pabx-demo exiting on signal 15

Вот и все. Это позволяет мне использовать box для запуска 1 удаленно, оставаясь при этом под контролем.

После того, как вы закончите, не забудьте отменить изменения:

chkconfig --level 1 network off
chkconfig --level 1 openvpn off
chkconfig --level 1 sshd off

/etc/init.d/ssh stop остановил ssh, не прерывая существующий сеанс ssh, но init 1 сделал...