บริการ 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 ฉันได้แนบข้อผิดพลาดด้านล่างน่าเศร้าที่ฉันไม่รู้จักโฮ re-running 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.

คำตอบ:


31

ลอง sshd -t (โหมดทดสอบ sshd) อาจชี้ให้คุณเห็นถึงสาเหตุของความล้มเหลว

โปรดดูเอกสารโหมดการทดสอบที่นี่


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 root@<ipaddr> -p 2323

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 แล้ว


2

คุณอาจต้องการลองใช้การตั้งค่าต่อไปนี้:

RestartSec=5s

ซึ่งจะบังคับให้แอปพลิเคชันของคุณเข้าสู่โหมดสลีปเป็นเวลา 5 วินาทีก่อนที่จะพยายามรีสตาร์ท คุณสามารถเปลี่ยนแปลงจำนวนการตั้งค่าได้อย่างชัดเจน

ดูรายละเอียดที่นี่ :


ฉันตอบคำถามนี้เพราะมีข้อมูลที่เป็นประโยชน์เกี่ยวกับวิธีแก้ไขปัญหาเมื่อปัญหาอยู่ใน systemd ไม่ใช่บริการจริง (sshd ในกรณี OP) ฉันเคยมีบริการที่มีการรีสตาร์ท = ล้มเหลวเสมอและไม่สามารถเริ่มใหม่ได้หลายครั้ง คำตอบนี้อาจแก้ปัญหานั้นกับ systemd (แม้ว่าจะไม่เกี่ยวข้องโดยตรงกับคำถาม OP)
MattBianco

1

Cannot bind any address

หากพยายามผูกเข้ากับพอร์ต (เช่นโดยค่าเริ่มต้น: 22) ต่ำกว่า 1024 จะต้องใช้สิทธิ์รูทเพื่อทำเช่นนั้น คุณวิ่งservice sshd startหรืออะไรแบบนั้นในฐานะรูต? ลองแก้ไขไฟล์การกำหนดค่า sshd.conf ตั้งค่า bind address เป็นพอร์ตที่มากกว่า 1024 (เช่น 1122) และเรียกใช้ในฐานะผู้ใช้ง่าย ๆ !


1

ฉันมีปัญหาเดียวกันและวิธีที่ง่ายที่สุดที่ฉันเจอคือการลบopensshและติดตั้งอีกครั้ง

 yum remove openssh

แล้ว:

 yum install openssh openssh-server openssh-clients

จากนั้นคุณสามารถเริ่มsshdบริการ:

 service sshd start


-1

เพียงทำตามนี้

mkdir -p /var/run/sshd

และ

/usr/sbin/sshd -ddd

สิ่งนี้จะแก้ไขปัญหาของคุณ


1
เหตุใดจึงควรเป็นวิธีแก้ปัญหาสำหรับ OP มี?
HBruijn

1
ฉันมีปัญหาที่คล้ายกันใน OpenVZ ฉันติดตามสิ่งนี้เพื่อแก้ไขปัญหา
Aman Juman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.