เซิร์ฟเวอร์ SSH ไม่ทำงาน (ตอบกลับจนกว่าจะหยุด)


12

ฉันใช้ Ubuntu Server 10.04.1 อยู่ เมื่อฉันพยายามลงชื่อเข้าใช้เซิร์ฟเวอร์ผ่าน ssh ฉันทำไม่ได้ แต่ฉันได้รับconnection refusedข้อผิดพลาด ฉันพยายาม ping เครื่องและฉันได้รับคำตอบ! ดังนั้นเหตุผลที่ชัดเจนคือ SSH daemon หยุดทำงาน

หลังจากรีบูตฉันสามารถเข้าสู่เซิร์ฟเวอร์ของฉันผ่าน 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

UPDATE:

/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 daemon อีกครั้ง ฉันควรหลีกเลี่ยงการใช้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ไฟล์และฉันอัปเดตคำถามของฉัน
Khaled

reloadควรเป็นการกระทำที่ถูกต้อง มันควรจะทำการรีสตาร์ทภายใน (และดูเหมือนว่าได้ลองแล้วและเพิ่งติดขัด) ลองโหลดใหม่อีกครั้งและดูว่าติดค้างอีกครั้งหรือไม่
Oli

แน่นอนว่าการโหลดซ้ำจะต้องถูกต้อง แต่มีข้อผิดพลาด ดูคำตอบของฉันสำหรับข้อมูลเพิ่มเติม
SpamapS

16

ฉันเพิ่งมีปัญหาเดียวกันในกล่อง 12.04 ของฉัน นั่นคืออาการเดียวกัน อนิจจามันเกิดขึ้นเสมอเมื่อผมนำListenAddressข้อด้วยinetและที่อยู่ในinet6 sshd_configในระยะสั้นนี้ดูเหมือนจะเป็นอาการของรูปแบบที่ไม่ถูกต้องsshd_config- แม้ว่าไฟล์บันทึกไม่ได้ระบุอะไรอย่างนั้น

การแก้ไขปัญหา sshd

สิ่งที่ฉันพบโดยทั่วไปมีประโยชน์มากในกรณีเช่นนี้คือการเริ่มต้นsshdโดยไม่ปล่อยให้ดีมอน ปัญหาในกรณีของฉันคือการที่ค่าsyslogมิได้auth.logแสดงให้เห็นว่าอะไรที่มีความหมาย

เมื่อฉันเริ่มมันจาก terminal ฉันได้รับ:

# $(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อินสแตนซ์ อย่าลืมเลือกพอร์ตฟรีที่นี่

วิธีนี้ช่วยฉันหลายครั้งในการค้นหาปัญหาไม่ว่าจะเป็นปัญหาการตรวจสอบหรือประเภทอื่น ๆ ในการรับเอาต์พุต verbose จริงๆให้stdoutใช้$(which sshd) -Ddddp 10222(จดบันทึกการเพิ่มddเพื่อเพิ่ม verbosity) man sshdสำหรับการแก้จุดบกพร่องการตรวจสอบความดีมากขึ้น


ข้อได้เปรียบหลักของวิธีนี้คือช่วยให้คุณตรวจสอบการsshdกำหนดค่าโดยไม่ต้องรีสตาร์ทsshdบนพอร์ตเริ่มต้น โดยปกติแล้วสิ่งนี้ไม่ควรรบกวนการเชื่อมต่อ SSH ที่มีอยู่ แต่ฉันได้เห็นแล้ว ดังนั้นสิ่งนี้ทำให้หนึ่งสามารถตรวจสอบไฟล์การกำหนดค่าก่อน - อาจ - ตัดการเข้าถึงเซิร์ฟเวอร์ระยะไกล (ตัวอย่างเช่นฉันมี VPS บางตัวและแม้แต่เซิร์ฟเวอร์ทางกายภาพที่ฉันต้องจ่ายเพิ่มเพื่อเข้าถึงนอกวง ไปที่เครื่อง)


3
เคล็ดลับการขอร้องโดยตรงของคุณเพียงบันทึกเบคอนของฉัน ฉันมีข้อผิดพลาดในไฟล์ sshd_config ของฉัน (สร้างจาก Chef) ที่ฉันสามารถแก้ไขได้โดยใช้เทคนิคนี้ ขอบคุณที่สละเวลาโพสต์ให้ทุกคน
Peter Laird

4

สิ่งนี้ดูเหมือนว่าจะเป็นผลมาจากข้อผิดพลาด # 687535 ซึ่งได้รับการแก้ไขเมื่อเร็ว ๆ นี้ใน natty และได้รับการอัปโหลดไปยังผู้ไม่ฝักใฝ่ฝ่ายใดและ lucid เป็นการอัปเดตที่เสนอ

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

ฉันแนะนำให้ทุกคนไปที่นั่นลองกรณีทดสอบ (ค้นหา TEST CASE) และโพสต์ผลลัพธ์ของคุณทั้งก่อนและหลังการติดตั้งโปรแกรมแก้ไขที่เสนอ สิ่งนี้จะช่วยให้ทีม SRU ตัดสินใจว่าการตรวจสอบเสร็จสิ้นแล้วและเผยแพร่เป็นข้อมูลอัปเดต


2

ใน/etc/ssh/sshd_configตรวจสอบให้แน่ใจว่าตัวเลือกใช่และไม่มีทั้งหมดเป็นตัวพิมพ์เล็ก ตัวอย่างเช่นหากคุณตั้งค่าไว้PermitRootLogin Nossh จะไม่เริ่มทำงาน มันจะต้องเป็นPermitRootLogin noจริง


1

ฉันมีปัญหาคล้ายกันกับอูบุนตู 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
แม้ว่านี่จะเป็นคู่มือที่มีประโยชน์ แต่ก็ไม่ชัดเจนว่าอะไรที่นำไปสู่ ​​OP sshdไม่ทำงานอย่างถูกต้องตามที่คุณเห็นจากข้อความแสดงข้อผิดพลาดที่แตกต่างกันมากในบันทึกของพวกเขา -1
David Foerster
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.