Перезапустите SSH на машине, где SSH является единственным режимом доступа

29

Я сделал некоторые изменения в файле sshd_config и, следовательно, необходимо перезагрузить. Я ищу советы по безопасному перезапуску SSH, когда физический доступ к серверу будет Хита PITA.

Митч
источник

Ответы:

42

Перезапуск sshd при входе в систему через ssh не приведет к отключению соединения ssh.

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

Упомянутый ниже в комментарии @Milan Babuškov: sshd -tпроверим вашу конфигурацию на правильность синтаксиса, если вы действительно хотите быть уверены.

Другое предложение @Ronald Pottol состояло в том, чтобы поставить cronзадачу перезагрузить сервер с известной рабочей конфигурацией. Возможно, излишнее, но если вы обновляете критически важный сервер и т. Д. ... иногда вы никогда не будете слишком осторожны.

cpbills
источник
Это довольно просто, тоже имеет смысл. Спасибо за действительно быстрый ответ. К вашему сведению, изменения, которые я вносил, работали великолепно;)
Митч
6

Если у вас есть доступ к оборудованию, вы можете установить терминал на последовательный порт / dev / ttyS0. Тогда вы можете иметь черный ход на свой сервер.

просто добавь

SO:2345:respawn:/sbin/mingetty ttySO

в ваш / etc / inittab и терминал будет порождать ваш последовательный порт. Вы можете использовать концентратор последовательного порта или нуль-модем с сервера рядом с ним.

keithosu
источник
Круто! Это довольно стандартная практика?
Митч
3
Довольно стандартный, если у вас есть способ подключения к компьютеру, который является сервером последовательного терминала.
Камил Кисиэль
2
Это может быть, но из-за виртуализации это не так необходимо, потому что вы можете управлять через гипервизор. Еще одна интересная вещь: если BIOS поддерживает это «Перенаправление консоли», это покажет все экраны BIOS через последовательную консоль. GRUB также имеет возможность отображения на последовательной консоли. Поэтому нет необходимости в удаленном видео, чтобы увидеть, вернется ли ваш сервер в оперативный режим.
keithosu
4

Не волнуйтесь, ваш текущий сеанс не будет отключен, даже если есть проблема с новой конфигурацией.

После применения новой конфигурации и перезапуска sshd, попробуйте войти пару раз и посмотреть журналы, чтобы убедиться, что все в порядке.

Марко Рамос
источник
3

Или использовать cron или на работе, чтобы запустить его обратно, если вам не повезло?

Рональд Поттол
источник
cronили atсработает, чтобы скопировать «известную» рабочую, то есть старую конфигурацию, обратно, а затем выполнить перезапуск службы ...
cpbills
1

Не могли бы вы просто запустить kill -HUP в PID службы SSH? Это не чисто, но это работает


источник
2
Часто SIGHUP это чистый способ перезагрузить конфигурацию демона.
grawity
Это является чистым в этом случае. Из официального
Стефан Гурихон
1
pkill -HUP sshdзакрыл мою связь. Это сработало:kill -HUP $(pgrep -f /usr/bin/sshd)
Том Хейл
0

Я обнаружил, что в настоящее время sshdне отключает ваши сессии при перезапуске, особенно когда это дистрибутив на основе Redhat. Вы всегда можете написать небольшой скрипт, который будет автоматически восстанавливать вашу sshdконфигурацию из резервной копии и перезапускаться sshdчерез 5 минут как задание cronили at. Это гарантирует, что даже если вы отключитесь, вы сможете вернуться на свой сервер по крайней мере.

Riaan
источник
-1

Я не рекомендовал бы перезагружать / перезагружать SSHD на соединении sshd. Я видел много случаев, когда sshd просто не запускался обратно из-за синтаксической ошибки в sshd_config.

Хотя с файлом конфигурации все в порядке, это рискованно.

Мурат Арслан
источник
9
Вы можете использовать sshd -t для предварительного тестирования файла конфигурации.
Милан Бабушков
Благодаря Милану, я быстро просмотрел man для такого варианта, в Apache его -s, так что, должно быть, я был слишком сосредоточен на -s.
Митч
Я собираюсь включить ваш комментарий в мой ответ, также, когда sshd завершает работу, он не прерывает открытые ssh-сессии, но хорошо знать, что ваш синтаксис действителен, если вы его потеете.
cpbills