У меня есть (виртуальный) сервер, запускающий Ubuntu 10.04 минимальная система. Я, кажется, неправильно сконфигурировал sshd так, чтобы он не запускал на перезагрузке. Так как это - сервер, у меня теперь нет доступа оболочки к моему серверу больше. Любые ssh запрашивают результаты в этом:
ssh: connect to host xxx.xxx.xxx.xxx port 22: Connection refused
И /var/run/sshd.pid
не существует.
У меня действительно есть доступ к файловой системе через Панель Virtuozzo, которую установил поставщик сервера.
Я не отредактировал /etc/init.d/ssh
запустите сценарий, но я действительно копировал его в /etc/rc2.d/ssh
в надеждах, что это запустило бы ssh в перезагрузке.
Я также пытался добавить, что запуск звонит в /etc/crontab
:
7 * * * * root /usr/bin/touch /root/cron_is_running
8 * * * * root /etc/init.d/ssh start
И при этом я не получаю файл /root/cron_is_running
ни sshd
запуск
Мои файлы журнала не обеспечивают очень в способе сообщений об ошибках для ssh, f.e. /var/log/syslog
только шоу много из named
материал при запуске и некоторых mysql
обновите материал, который, конечно, не связан.
Я ценю любую справку, я уже настроил набор вещей на том сервере и путем установки нового изображения, я буду освобождать все данные по серверу.
Обновление: Изменение сценария в /etc/rc2.d/ssh
кому: /etc/rc2.d/S90ssh
не имел никакого эффекта. /var/log/auth.log
не содержит строк, которые намекают на ssh, пытающийся запустить, это полно этих строк однако:
Обновление 2: Как предложено я также пытался добавить /usr/sbin/sshd
кому: /etc/rc.local
. Но тест с touch /tmp/test
кажется, предполагает, что этот файл не выполняется несмотря на устанавливаемый флаг +x. Я также пытался добавить sleep 10
в начале rc.local
сценарий, потому что было предложено в другом месте, чтобы этот сценарий имел проблемы параллелизма.
Заключительное Обновление Благодаря ниже ответов снова. Они были огромной справкой в фиксации пропавших без вести sshd запуск в rcX.d/
каталоги. Заключительная фиксация должна была запустить "Восстановление" с Панели Virtuozzo, это монтирует исходную систему как часть файловой системы системы восстановления с настройками исходной сети. Я мог войти в это с ssh. Я скопировал работу ssh конфигурации от системы восстановления по ssh конфигурациям поврежденной исходной системы, закончил восстановление, и теперь я могу войти в систему снова.
Ваша попытка копирования к /etc/rc2.d/ssh
было почти правильным.
Для сценария в /etc/rcX.d
чтобы быть выполненным при запуске, это нужно назвать SxxZZZ
где S
литерал S (для Start
; можно также использовать K
для Уничтожения во время завершения работы), xx
представление числа, куда в порядке запуска оно работает (01 первое, 99 последних), и ZZZ
Ваше название сценария.
Так, Вы хотели бы что-то как S90ssh
. Число не критически важно, 90 должен быть в порядке, сеть произойдет к тому времени и т.д.
Обратите внимание, что это должно будет также быть установлено исполняемый файл - я не знаю, позволит ли система, которую Вы используете, Вам делать это? Надо надеяться, копирование существующего ssh
сценарий и просто переименование сохранят исполняемый набор битов.
Как альтернатива, /etc/rc.local
может использоваться в качестве универсального универсального сценария запуска. Просто отбрасывание /usr/sbin/sshd
там перед строкой выхода для получения sshd
запущенный как последнее прибежище.
Дайте этому движение и обновите свой вопрос, если Вы все еще испытываете затруднения :)
Можно зарегистрироваться /var/log/auth.log
(/var/log/syslog
не содержит сообщения sshd по умолчанию) для строки как:
sshd[18838]: Server listening on 0.0.0.0 port 22.
видеть, запускается ли это.
Если вы переходите к типу /etc/init.d/
sudo service ssh start
, и он приходит в чистоту (без сбоев), вам нужно всего лишь запустить sudo update-rc.d ssh defaults
, чтобы сервис поднялся на нужные уровни и был убит, когда ваша система будет закрыта .
Вы также можете сделать это вручную, скопировав скрипт и переименовав его, чтобы указать, что он должен быть остановлен или запущен на этом уровне. Вот файлы, созданные с помощью команды update-rc.d
:
/etc/rc0.d/K20ssh -> ../init.d/ssh
/etc/rc1.d/K20ssh -> ../init.d/ssh
/etc/rc6.d/K20ssh -> ../init.d/ssh
/etc/rc2.d/S20ssh -> ../init.d/ssh
/etc/rc3.d/S20ssh -> ../init.d/ssh
/etc/rc4.d/S20ssh -> ../init.d/ssh
/etc/rc5.d/S20ssh -> ../init.d/ssh
Таким образом, простые cp /etc/init.d/ssh /etc/rc0(1,6).d/K20ssh
и cp /etc/init.d/ssh /etc/rc2(3,4,5).d/K20ssh
должны сделать свое дело. (обратите внимание, что вы должны запустить cp
для каждой папки rc.d
, команда является лишь примером того, какое имя дать скопированным файлам).
K20ssh
запускается, когда машина отключается, а S20ssh
- это имя сценария для уровней, на которых он должен работать.
S
и K
указывают start или kill , а число после него указывает порядок, в котором будут запускаться скрипты внутри папки, меньшее число заставляет запускаться раньше и более высокое число заставляет его запускаться позже, в случае ssh
оно должно действительно не быть mather, а 20 его значением по умолчанию, назначенным update-rc.d
.