ฉันติดตั้งเซิร์ฟเวอร์ OpenSSH บนพีซี Windows 10 ของฉัน (อาจเป็นเวอร์ชัน "บ้าน" ไม่ใช่เซิร์ฟเวอร์ Windows) โดยใช้ คู่มือ Microsoft. ฉันไม่ได้เปลี่ยน C:/Windows/System32/OpenSSH/sshd_config_default
ไฟล์ (แม้ว่าฉันไม่คิดว่ามันเกี่ยวข้องกับที่นี่ก็ตาม) ฉัน สามารถ เข้าสู่ระบบเครื่องจากเทอร์มินัลบนเครื่องเดียวกันนั้น:
ฉันมีเครื่องอื่นที่ทำงานบน LAN เดียวกัน (ทั้งคู่ต่อสายกับเราเตอร์ SoHo เดียวกัน) จากนั้นการพยายามเชื่อมต่อกับ Windows 10 ล้มเหลวด้วย:
kex_exchange_identification: การเชื่อมต่อถูกปิดโดยโฮสต์ระยะไกล
การเชื่อมต่อปิดโดย 10.0.3.130 พอร์ต 22
ตาม คำตอบนี้สำหรับกระทู้อื่นที่คล้ายกันข้อผิดพลาดนี้เกิดขึ้นเมื่อเซิร์ฟเวอร์ปิดการเชื่อมต่อ TCP ระหว่างการแลกเปลี่ยนการเข้ารหัสหรืออะไรทำนองนั้น ดังนั้นฉันจึงดูที่ไฟร์วอลล์ของ Windows แต่ที่นั่น เป็น กฎขาเข้าที่เปิดใช้งานสำหรับพอร์ต TCP 22 (และนอกจากนี้ หากปัญหากฎขาดหายไป ไคลเอนต์ SSH ก็จะหมดเวลา ไม่มีข้อผิดพลาดใน kex_exchange_identification
):
ดังนั้นฉันจึงลองใช้ Wireshark บนเซิร์ฟเวอร์ (10.0.3.130) ดูเหมือนว่าเซิร์ฟเวอร์ยอมรับการจับมือ TCP จากนั้นเครื่องอื่น (10.0.3.10) ส่งแพ็กเก็ต SSH โปรโตคอลบางอย่าง จากนั้นเซิร์ฟเวอร์ก็ปิดการเชื่อมต่อ:
เพื่อดูว่าจะเกิดอะไรขึ้น ฉันไปที่ Windows' บริการ
แอปและหยุดการ เซิร์ฟเวอร์ OpenSSH SSH
บริการ จากนั้นลองสิ่งเดียวกัน แต่ผลลัพธ์ของ Wireshark เหมือนกัน:
สิ่งหนึ่งที่ฉันสังเกตเห็นและไม่ค่อยเข้าใจก็คือการวิ่ง netstat -ab
ใน PowerShell ของผู้ดูแลระบบแสดงว่าพอร์ต 22 มีผู้ฟังที่ใช้งานอยู่แม้ว่า OpenSSH จะหยุดทำงานก็ตาม (เฉพาะ Windows สิ่งที่ฉันเดา ... ):
ใช่แล้ว... ฉันกระทืบ ณ จุดนี้ ความคิดใด ๆ ?