служба sshd не запускается

27

Я не уверен, почему он не запускается или почему он не позволяет мне подключиться, я получаю эту ошибку:

sshd.service - OpenSSH Daemon
    Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: failed (Result: start-limit) since Wed 2013-09-11 08:45:13 BST; 1min 21s ago
  Process: 701 ExecStart=/usr/bin/sshd -D (code=exited, status=1/FAILURE)

Sep 11 08:45:13 alarmpi systemd[1]: sshd.service: main process exited, code=exited, status=1/FAILURE
Sep 11 08:45:13 alarmpi systemd[1]: Unit sshd.service entered failed state.
Sep 11 08:45:13 alarmpi systemd[1]: sshd.service holdoff time over, scheduling restart.
Sep 11 08:45:13 alarmpi systemd[1]: Stopping OpenSSH Daemon...
Sep 11 08:45:13 alarmpi systemd[1]: Starting OpenSSH Daemon...
Sep 11 08:45:13 alarmpi systemd[1]: sshd.service start request repeated too quickly,    refusing to start.
Sep 11 08:45:13 alarmpi systemd[1]: Failed to start OpenSSH Daemon.
Sep 11 08:45:13 alarmpi systemd[1]: Unit sshd.service entered failed state.

По совету #amrith я запустил sshd -t, который указал, что ключ не был сгенерирован. Я сгенерировал это с помощью ssh-keygen -A по совету, данному на этом форуме, а затем запуск статуса systemctl показал, что я все еще не запускаю Daemon. Я прикрепил ошибку ниже, к сожалению, я не знаю, хо. Перезапуск sshd -t сейчас не выдает сообщений.

sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: inactive (dead)

Sep 11 12:04:42 alarmpi systemd[1]: Started OpenSSH Daemon.
Sep 11 12:04:42 alarmpi sshd[289]: fatal: Cannot bind any address.
Sep 11 12:04:42 alarmpi systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
Sep 11 12:04:42 alarmpi systemd[1]: Unit sshd.service entered failed state.
Sep 11 12:04:42 alarmpi systemd[1]: sshd.service holdoff time over, scheduling restart.
Sep 11 12:04:42 alarmpi systemd[1]: Stopping OpenSSH Daemon...
Sep 11 12:04:42 alarmpi systemd[1]: Starting OpenSSH Daemon...
Sep 11 12:04:42 alarmpi systemd[1]: sshd.service start request repeated too quickly, refusing to start.
Sep 11 12:04:42 alarmpi systemd[1]: Failed to start OpenSSH Daemon.
Sep 11 12:04:42 alarmpi systemd[1]: Unit sshd.service entered failed state.
aCoolBean
источник

Ответы:

31

Попробуйте sshd -t (тестовый режим sshd). Это может указать вам причину неудачи.

Обратитесь к документации по тестовому режиму здесь .

amrith
источник
15

Проблема в нашем случае заключалась в том, что мы используем нестандартный порт для SSH. SELinux может ограничивать, какие порты могут использоваться службой. Видимо, это иногда путается и забывает, что мы разрешили этот порт?

Нам пришлось выполнить следующую команду, чтобы добавить наш порт (22222) в список доступных портов

semanage port -a -t ssh_port_t -p tcp 22222

Ссылка: http://sharadchhetri.com/2014/10/15/centos-7-rhel-7-change-openssh-port-number-selinux-enabled/

Томми Макнили
источник
8

Хорошо, если вы измените номер порта SSH, вам придется сделать еще кое-что в CentOS 7.

Изменить SSH-порт, редактируя файл ssdh_config

vi /etc/ssh/sshd_config

Например изменить на: порт 2323

SELINUX разрешает только порт 22 для SSH. Добавьте новый контекст порта 2323. Если вы не установили, сделайте следующее

yum -y install policycoreutils-python
semanage port -a -t ssh_port_t -p tcp 2323

Проверьте контекст порта для SSH

semanage port -l | grep ssh

Перезапустите службу SSHD

systemctl restart sshd.service

Добавьте порт в брандмауэр

firewall-cmd --permanent --zone=public --add-port=2323/tcp

Перезагрузить брандмауэр

firewall-cmd --reload

Проверьте прослушивание

ss -tnlp|grep ssh

Попробуйте подключиться снова через SSH

ssh root@<ipaddr> -p 2323
Slipstream
источник
3

У меня тоже была эта проблема, но я решил ее. Моя конфигурация ниже.

PermitRootLogin no
port 22
MaxAuthTries 3
MaxSessions 2
AllowUsers ravikanth
AddressFamily any
ListenAddress 192.168.1.23

Не удалось запустить службу, поэтому я только что закомментировал последнюю строку ( #ListenAddress 192.168.1.23), после чего мой сервер успешно запустился.

Примечание: я отключил брандмауэр (iptables) и SELinux.

ravikanth
источник
2

Вы можете попробовать использовать следующие настройки:

RestartSec=5s

Это заставило бы ваше приложение спать в течение 5 секунд до попытки перезапуска. Вы можете явно варьировать количество настроек.

Смотрите здесь для деталей:

Борис Эпштейн
источник
Я проголосовал за этот ответ, потому что он содержит полезную информацию о том, как решить проблему, когда проблема в systemd, а не в реальной службе (sshd в случае OP). У меня были службы с перезагрузкой = всегда сбой и не перезапускаться, несколько раз. Этот ответ может решить эту проблему с помощью systemd. (Хотя это не имеет прямого отношения к вопросу ОП).
MattBianco
1

Cannot bind any address

Если он пытается привязаться к порту (например, по умолчанию: 22) ниже 1024, ему для этого необходимы права root. Вы запускали service sshd startили что-то подобное от имени root? Попробуйте отредактировать файл конфигурации sshd.conf, установите адрес привязки на порт больше 1024 (например, 1122) и запустите его как простой пользователь!

Дэвид Лакатос
источник
1

У меня была та же проблема, и самое простое решение, которое я нашел, - это удалить opensshи установить его снова.

 yum remove openssh

а потом:

 yum install openssh openssh-server openssh-clients

тогда вы можете начать sshdобслуживание:

 service sshd start
Али Хашеми
источник
0

У меня была такая же проблема. Просто отключил SELinux!

tquang
источник
-1

Просто следуй этому,

mkdir -p /var/run/sshd

а также

/usr/sbin/sshd -ddd

Это должно исправить вашу проблему.

Аман Джуман
источник
1
Почему это должно быть решением проблемы, с которой столкнулся ОП?
HBruijn
1
У меня похожая проблема в OpenVZ. Я последовал за этим, чтобы исправить проблему.
Аман Джуман