แม้ว่าปัญหาของคุณอาจได้รับการแก้ไขแล้วโดยคำตอบอื่น ๆ ฉันได้ล็อคตัวเองจากเครื่องจักรเพียงพอที่จะไม่ตรวจสอบการเปลี่ยนแปลง sshd_config ก่อนที่จะออกจากระบบดังนั้นจึงมีกระบวนการด้านล่างที่อาจเป็นประโยชน์สำหรับการแก้ไขข้อผิดพลาดในอนาคต
อย่าตัดการเชื่อมต่อ ssh ที่ใช้งานอยู่จนกว่าการทดสอบหลังจากที่ได้รับการตรวจสอบพฤติกรรมเป็นไปตามที่คุณคาดหวัง
ตรวจสอบสิ่งที่คุณคิดว่า sshd ควรจะทำ
ข ตรวจสอบการกำหนดค่าที่ถูกต้องโดยใช้ "-t"
ค. เริ่มต้นเซิร์ฟเวอร์ verbose รุ่น 'test' ที่คุณสามารถตรวจสอบได้
d เริ่มการเชื่อมต่อไคลเอนต์ 'ทดสอบ' verbose คุณสามารถตรวจสอบสด
ตรวจสอบสิ่งที่คุณคิดว่า sshd ควรจะทำ
ตรวจทานไฟล์การกำหนดค่า sshd โดยไม่ต้องมีคำอธิบายทั้งหมดที่มีลักษณะดังนี้ (สมมติว่า sshd_config เป็นไฟล์ที่ถูกต้องและใน / etc / ssh)
$ grep -v "^ #" / etc / ssh / sshd_config | grep -v "^ $"
สิ่งนี้จะล้างสิ่งต่าง ๆ ออกไปเพื่อให้เราตรวจสอบสิ่งที่เราคิดว่าเรากำลังเปลี่ยนแปลง (ไม่จำเป็นว่าจะถูกต้องหรือไม่ก็ตาม)
ข ตรวจสอบการกำหนดค่าที่ถูกต้องโดยใช้ "-t"
จากหน้า man ของ sshd ที่ฉันใช้
โหมดการทดสอบ -t ตรวจสอบความถูกต้องของไฟล์กำหนดค่าและความถูกต้องของกุญแจเท่านั้น สิ่งนี้มีประโยชน์สำหรับการอัพเดต sshd ที่เชื่อถือได้เนื่องจากตัวเลือกการกำหนดค่าอาจเปลี่ยนแปลงได้
การเปลี่ยนแปลงอื่น ๆ อาจมีสถานการณ์ที่ลึกซึ้งยิ่งขึ้น ตัวอย่างเช่นอย่าปิดใช้งานการรับรองความถูกต้องของรหัสผ่านจนกว่าคุณจะแน่ใจว่าการรับรองความถูกต้องของรหัสสาธารณะทำงานอย่างถูกต้อง
ค. เริ่มต้นเซิร์ฟเวอร์ verbose รุ่น 'test' ที่คุณสามารถตรวจสอบได้
$ sudo / usr / sbin / sshd -ddd -p 9999
สิ่งนี้จะช่วยให้เซสชันการทำงานที่มีอยู่ของคุณมีอยู่ แต่ให้อินสแตนซ์อื่นของ sshd เพื่อยืนยันการเปลี่ยนแปลงการกำหนดค่าใหม่ SSHD กำลังทำงานในเบื้องหน้าไปยังพอร์ตที่ผู้ใช้กำหนด (9999 ในตัวอย่างของเรา) และผลักดันข้อมูลการดีบักที่มีเสียงดังมากมายคุณสามารถติดตามใน / var / log / authlog (หรืออาจเป็น /var/log/auth.log ขึ้นอยู่กับ บนระบบปฏิบัติการของคุณ)
d เริ่มการเชื่อมต่อไคลเอนต์ 'ทดสอบ' verbose คุณสามารถตรวจสอบสด
เรียกใช้การเชื่อมต่อไคลเอ็นต์ ssh ในโหมด verbose เพื่อแสดงข้อมูลเพิ่มเติมบนหน้าจอของคุณซึ่งอาจทำให้คุณดีขึ้นการดีบักข้อผิดพลาดของคุณ
$ ssh -vvv -p 9999 ชื่อเซิร์ฟเวอร์
ตอนนี้คุณควรมีข้อมูลเพียงพอในแฟ้มบันทึกของเซิร์ฟเวอร์หรือหน้าจอการเชื่อมต่อของไคลเอ็นต์เพื่อแยกปัญหาของคุณ
วิธีการแก้ปัญหาโดยทั่วไปจะมาลงในการอนุญาตไฟล์ (ดังที่แสดงโดย Magnar และ setatakahashi)
ขอให้โชคดี
/etc/ssh/ssh_config
และ/etc/ssh/sshd_config
ยืนยันว่าไม่มีสิ่งใดที่คุณต้องการถูกปิดใช้งาน