Сервер SSH не працює (перезавантажує до зупинки)


12

У мене працює запущений сервер Ubuntu 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, і до нього слід запускатись та отримувати доступ дистанційно за допомогою 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та inet6адресами в sshd_config. Коротше кажучи, це виглядає як симптом неправильної форми, sshd_configхоча у файлах журналів нічого подібного не було.

Вирішення проблем sshd

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

Коли я запустив його з терміналу, я отримав:

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

Набагато краще! Це повідомлення про помилку дозволило мені побачити, що не так, і виправити це. Жоден з файлів журналу не містив цього виводу.

Примітка: принаймні на 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 (згенерований від шефа) у мене виникла помилка, яку я зміг вирішити за допомогою цієї методики. ДЯКУЮ, що знайшли час, щоб опублікувати його всім.
Пітер Лаїрд

4

Це здається результатом помилки № 687535, яка була виправлена ​​нещодавно в natty, і вона була завантажена як в maverick, так і в зрозуміліше як запропоноване оновлення.

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

Я б закликав усіх зайти туди, спробувати тестовий випадок (пошук TEST CASE) та опублікувати свої результати до і після встановлення запропонованого виправлення. Це допоможе команді СРУ вирішити, що перевірка зроблена, і випустити її як оновлення.


2

В /etc/ssh/sshd_config, переконайтеся , що всі так і немає опції в нижньому регістрі. Наприклад, якщо встановити PermitRootLogin No, ssh не запуститься. Це насправді має бути PermitRootLogin no.


1

У мене була аналогічна проблема із зображенням Ubuntu 11.10 на Linode після перезавантаження. Служба ssh виробляє в syslog:

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 не запускався, і syslog давав "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не працює належним чином, як видно із самих різних повідомлень про помилки в їхніх журналах. -1
Девід Фоерстер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.