web-dev-qa-db-ja.com

sshdサービスが開始に失敗する

なぜ起動しないのか、接続できない理由がわからないので、次のエラーが発生します。

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を使用してこれを生成しました forum その後、systemctl statusを実行すると、まだデーモンを実行していないことが示されました。以下のエラーを添付しましたが、残念ながらわかりません。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.
28
aCoolBean

Sshd -t(sshdテストモード)を試してください。失敗の理由を示している可能性があります。

テストモードのドキュメント here を参照してください。

33
amrith

私たちの場合の問題は、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/

15
Tommy McNeely

SSHポート番号を変更する場合は、CentOS 7でさらにいくつかのことを行う必要があります。

SSHポートを編集するssdh_configファイルを変更する

vi /etc/ssh/sshd_config

たとえば、次のように変更します。ポート232

SELINUXは、sshにポート22のみを許可します。新しいポートコンテキスト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
9
Slipstream

私もこの問題を抱えていましたが、解決しました。私の設定は以下です。

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

サービスの開始に失敗したため、最後の行(#ListenAddress 192.168.1.23)サーバーが正常に起動しました。

注:ファイアウォール(iptables)とSELinuxをオフにしました。

3
ravikanth

次の設定を使用してみてください。

RestartSec=5s

これにより、再起動を試行する前に、アプリケーションが5秒間スリープ状態になります。明らかに設定の数を変えることができます。

詳細は こちら を参照してください:

2
Boris Epstein

私は同じ問題を抱えており、私が解決した最も簡単な解決策は、opensshを削除して再度インストールすることでした。

 yum remove openssh

その後:

 yum install openssh openssh-server openssh-clients

次に、sshdサービスを開始できます。

 service sshd start
1
Ali Hashemi

Cannot bind any address

1024未満のポート(たとえば、デフォルトでは22)にバインドしようとする場合、そのためにはroot権限が必要です。実行しましたかservice sshd startまたはrootとしてそのような何か? sshd.conf構成ファイルを編集して、バインドアドレスを1024より大きいポート(例:1122)に設定し、単純なユーザーとして実行してください。

1
David Lakatos

ただこれに従ってください

mkdir -p /var/run/sshd

そして

/usr/sbin/sshd -ddd

これで問題が解決します。

0
Aman Juman