SSH сервер не работает (респаунс до остановки)


12

У меня работает Ubuntu Server 10.04.1. Когда я попытался войти на сервер через ssh, я не смог. Вместо этого я получил connection refusedошибку. Я попытался пинговать машину, и я получил ответ! Итак, очевидная причина в том, что демон SSH остановлен.

После перезагрузки я смог войти на свой сервер через ssh. Через некоторое время я просмотрел свои логи /var/log/syslogи нашел следующие записи:

Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2465) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2469) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2473) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2477) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2481) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2485) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2489) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2493) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2497) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2501) terminated with status 255
Jan 16 10:57:09 myserver init: ssh respawning too fast, stopped

Я искал похожую проблему / решение. Некоторые люди говорили , что это вызвано SSH - демон пытается запуститься до сети , и они предлагают изменения ListenAddressв /etc/ssh/sshd_configбыть 0.0.0.0. Я думаю, что это не причина в моем случае, потому что моя проблема возникает после того, как система запущена и работает.

Есть идеи, что вызывает это? Это Ubuntu Server, и он должен быть запущен и доступен удаленно через SSH.

ОБНОВИТЬ:

Вот фрагмент журнала, в котором я нашел /var/log/auth.log.

Jan 16 10:56:38 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/vim /etc/ssh/sshd_config
Jan 16 10:57:09 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/etc/init.d/ssh reload
Jan 16 10:57:09 myserver sshd[1465]: Received SIGHUP; restarting.
Jan 16 10:57:09 myserver sshd[2461]: Server listening on 0.0.0.0 port 22.
Jan 16 10:57:09 myserver sshd[2465]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2465]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2469]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2469]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2473]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2473]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2477]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2477]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2481]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2481]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2485]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2485]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2489]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2489]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2493]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2493]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2497]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2497]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2501]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2501]: fatal: Cannot bind any address.

Кажется, эта ошибка начала появляться после того, как я перезагрузил демон SSH. Должен ли я избегать использования ssh reloadи использовать ssh restartвместо этого?


Также проверьте это. Это может быть проблема с sshd_config sintaxis bugs.launchpad.net/ubuntu/+source/openssh/+bug/911753

Ответы:


7

Вы должны проверить, что произошло непосредственно перед тем, как SSH начал барахтаться syslog. Если сетевая подсистема умерла, это могло бы объяснить причину sshdсбоя.

Я бы тоже проверил /var/log/auth.log. Это sshdжурнал, и он может дать вам лучшее сообщение об ошибке.


Благодарность! Я нашел много записей в auth.logфайле, и я обновил свой вопрос.
Халед

reloadдолжно быть действительным действием. Это должно вызвать внутренний перезапуск (и, похоже, он попытался это сделать и просто застрял). Попробуйте перезагрузить снова и посмотреть, не застрянет ли он снова.
Оли

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

16

У меня просто была такая же проблема на моей коробке 12.04. Т.е. те же симптомы. Увы, это всегда происходило, когда я вводил ListenAddressпредложение с адресами inetи . Короче говоря, это, похоже, признак неправильной формы - хотя в файлах журнала ничего подобного не было.inet6sshd_configsshd_config

Исправление проблем sshd

Что я нахожу в целом очень полезным в любых таких случаях, так это начать, sshdне позволяя этому демонизироваться. Проблема в моем случае заключалась в том, что ни то, ни другое syslogне auth.logпоказало ничего значимого

Когда я запустил его из терминала, я получил:

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.

Намного лучше! Это сообщение об ошибке позволило мне увидеть, что случилось, и исправить это. Ни один из файлов журнала не содержал этот вывод.

NB: по крайней мере в Ubuntu $(which sshd)это лучший способ удовлетворить sshdтребования абсолютного пути. В противном случае вы получите следующее сообщение об ошибке: sshd re-exec requires execution with an absolute path. Программа -p 10222заставляет sshdпрослушивать этот альтернативный порт, переопределяя файл конфигурации - это так, чтобы он не конфликтовал с потенциально работающими sshdэкземплярами. Убедитесь, что выбрали свободный порт здесь.

Этот метод много раз помог мне в поиске проблем, будь то проблемы с аутентификацией или другие типы. Чтобы получить действительно подробный вывод stdout, используйте $(which sshd) -Ddddp 10222(обратите внимание на добавленное ddдля увеличения многословия). Для дополнительной проверки отладки man sshd.


Основным преимуществом этого метода является то, что он позволяет вам проверять sshdконфигурацию, не перезапуская sshdпорт по умолчанию. Обычно это не должно мешать существующим SSH-соединениям, но я видел это. Таким образом, это позволяет проверить файл конфигурации до - потенциально - прекращения доступа к удаленному серверу (например, у меня есть это для некоторых VPS и даже для физических серверов, где мне нужно доплачивать, чтобы получить внеполосный доступ к машине).


3
Ваш трюк с прямым вызовом только что спас мой бекон. У меня была ошибка в моем файле sshd_config (сгенерированная из Chef), которую я смог решить, используя эту технику. СПАСИБО за то, что нашли время опубликовать это для всех.
Питер Лэрд

4

Похоже, что это является результатом ошибки # 687535, которая была недавно исправлена ​​в natty и была загружена как в maverick, так и в lucid в качестве предлагаемого обновления.

https://bugs.launchpad.net/ubuntu/lucid/+source/openssh/+bug/687535

Я рекомендую всем пойти туда, попробовать тестовый пример (выполнить поиск TEST CASE) и опубликовать результаты до и после установки предложенного исправления. Это поможет команде SRU решить, что проверка была выполнена, и выпустить ее в качестве обновления.


2

В /etc/ssh/sshd_config, убедитесь , что все да и нет опции в нижнем регистре. Например, если вы установите PermitRootLogin No, ssh не запустится. Это действительно должно быть PermitRootLogin no.


1

У меня была похожая проблема с изображением Ubuntu 11.10 на Линоде после перезапуска. ssh сервис выдаст в системный журнал:

Mar 18 06:31:33 servername kernel: init: ssh main process ended, respawning
Mar 18 06:31:33 servername kernel: init: ssh main process (3419) terminated with status 255
Mar 18 06:31:33 servername kernel: init: ssh main process ended, respawning
Mar 18 06:31:33 servername kernel: init: ssh main process (3422) terminated with status 255
Mar 18 06:31:33 servername kernel: init: ssh respawning too fast, stopped

Это тестовая коробка, и у нее было около 60 дней безотказной работы, поэтому где-то по пути я установил что-то, что добавилось в конец sshd_config:

ClientAliveInterval 60
ClientCountAliveMax 60

Комментирование этих строк позволило запустить ssh.


0

Ubuntu ssh не запускается и системный журнал выдает «init: ssh основной процесс (2044) завершен со статусом 255»

/ usr / sbin / sshd -Ddp 10222

Конечно, работал для меня, чтобы определить ошибку строки sshd_config


-1

есть та же проблема, верхнее решение не работает, но у меня есть решение для этого.

root@imt:~# sshd
sshd re-exec requires execution with an absolute path
ssh localhost
ssh: connect to host localhost port 22: Network is unreachable

Путь в соответствии с документом, поэтому я запускаю sshd вручную.

root@imt:~# /usr/sbin/sshd 
/var/run/sshd must be owned by root and not group or world-writable

Разрешение / var / run / sshd есть.

root@imt:~# ls -ld /var/run/sshd
drwsrwsrwt 2 root root 40 Jan  5 12:58 /var/run/sshd

root@imt:~# chmod 755 /var/run/sshd

тогда это хорошо. запустите ssh localhost и проверьте.

root@imt:~# ssh localhost 
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 64:93:fd:ab:4c:f9:7b:8a:86:60:22:f7:56:fa:ea:cc.
Are you sure you want to continue connecting (yes/no)? yes

1
Несмотря на то, что это полезное руководство, очевидно, это не то, что привело к sshdнеправильной работе OP , как вы можете видеть из самых разных сообщений об ошибках в их журналах. -1
Дэвид Фёрстер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.