なぜ起動しないのか、接続できない理由がわからないので、次のエラーが発生します。
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.
Sshd -t(sshdテストモード)を試してください。失敗の理由を示している可能性があります。
テストモードのドキュメント here を参照してください。
私たちの場合の問題は、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/
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
私もこの問題を抱えていましたが、解決しました。私の設定は以下です。
PermitRootLogin no
port 22
MaxAuthTries 3
MaxSessions 2
AllowUsers ravikanth
AddressFamily any
ListenAddress 192.168.1.23
サービスの開始に失敗したため、最後の行(#ListenAddress 192.168.1.23
)サーバーが正常に起動しました。
注:ファイアウォール(iptables)とSELinuxをオフにしました。
次の設定を使用してみてください。
RestartSec=5s
これにより、再起動を試行する前に、アプリケーションが5秒間スリープ状態になります。明らかに設定の数を変えることができます。
詳細は こちら を参照してください:
私は同じ問題を抱えており、私が解決した最も簡単な解決策は、openssh
を削除して再度インストールすることでした。
yum remove openssh
その後:
yum install openssh openssh-server openssh-clients
次に、sshd
サービスを開始できます。
service sshd start
Cannot bind any address
1024未満のポート(たとえば、デフォルトでは22)にバインドしようとする場合、そのためにはroot権限が必要です。実行しましたかservice sshd start
またはrootとしてそのような何か? sshd.conf構成ファイルを編集して、バインドアドレスを1024より大きいポート(例:1122)に設定し、単純なユーザーとして実行してください。
ただこれに従ってください
mkdir -p /var/run/sshd
そして
/usr/sbin/sshd -ddd
これで問題が解決します。