Сервер SSH на уровне выполнения 3

Я пытался настроить SSH-сервер на своем рабочем столе для удаленного доступа и столкнулся с несколькими проблемами. Первое, что я обнаружил, это то, что sshd не запускается при загрузке. Как только я бегу:

sudo service sshd start

вручную я могу подключиться к компьютеру через ssh, поэтому я знаю, что демон ssh установлен правильно. Теперь я просто хочу, чтобы это началось при загрузке.

Посмотрев на это я нашел в

/etc/rc.d/rc3.d 

Я нашел скрипт

K##sshd

Или что-то вдоль этих линий. Я считаю, что K подразумевает, что при входе на уровень выполнения 3 он выключает sshd. Все, что мне нужно сделать, чтобы начать, - это создать файл S##sshd, чтобы перезапустить его, или есть лучший способ сделать это. Я подумал, что мне нужно получить более осведомленные мнения, прежде чем я начну переименовывать и создавать случайные файлы.

3 ответа

Решение

Я полагаю, что K подразумевает, что при входе в уровень выполнения 3 он выключает sshd

Да. K для Kill.

Это старый стартап в стиле SystemV. Все базовые сценарии находятся в init.d, и в каталогах rc?.D, откуда они фактически запускаются, есть различные символические ссылки с конкретными соглашениями об именах (S00..., K99...).

Когда вы изменяете уровни запуска, скажем, с 1 на 3, процесс init порождает скрипт, который входит в каталог для старого уровня запуска (/etc/rc.d/rc1.d/), и запускает все скрипты, которые начинаются с K, как

K_NUMBER_some_service stop

Затем вы переходите в каталог с новым уровнем запуска (в данном случае /etc/rc.d/rc3.d) и запускаете все сценарии, которые начинаются с S, как

S_NUMBER_some_service start

Сценарии выполняются в алфавитном порядке, порядок которого обычно определяется НОМЕРОМ в диапазоне от 00 до 99. Порядок важен - вы не хотите запускать sshd перед началом работы в сети.

Теоретически, если вы знаете, как определить число / порядок его выполнения, вы можете сделать символические ссылки вручную. Большинство сценариев имеют этот номер заказа в качестве комментария (попробуйте: head /etc/rc.d/init.d/sshd). Но вам гораздо лучше использовать соответствующие инструменты для работы. На Redhat есть ntsysv, а также system-config-services, Если вы хотите, вы можете даже использовать инструмент командной строки chkconfig, Я думаю

chkconfig --level 2345 sshd on

будет делать то, что вы хотите. Проверить с помощью chkconfig --list sshd

Redhat использует инструмент ntsysv для включения / выключения служб для каталогов rcN.d.

Если вы хотите войти на уровне запуска 3 (это многопользовательский режим, только для входа в консоль), все, что вы хотите сделать, это $ sudo init 3, Еще один способ сделать это - добавить параметр ядра "3", и когда вы загружаете grub, нажмите "e", чтобы изменить параметр загрузки ядра.

ВНИМАНИЕ: применение этого к машине, работающей на уровне выполнения 5 (многопользовательский режим, с дисплеем дисплеев, а также входами в консоль) убьет X11 и заставит вас войти в консольный режим.

Другие вопросы по тегам