วิธีการติดตั้ง OpenSSH บน Windows

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา
เปิดหน้าต่าง

ก่อนหน้านี้ หากคุณต้องการใช้ SSH บน Windows คุณจะต้องพึ่งพาไคลเอ็นต์ของบุคคลที่สาม เช่น PuTTY หรือติดตั้งแพ็คเกจเซิร์ฟเวอร์ SSH จากแหล่งที่คล้ายคลึงกัน

อย่างไรก็ตาม การอัปเดตเดือนเมษายน 2018 (เวอร์ชัน 1803) ได้แนะนำ OpenSSH เป็นฟีเจอร์ในตัว ตราบใดที่คุณใช้เวอร์ชัน Windows ที่รองรับ คุณสามารถติดตั้งส่วนประกอบไคลเอนต์และเซิร์ฟเวอร์ OpenSSH เป็นคุณสมบัติเสริมได้

กวดวิชาแสงความสามัคคี 2d

ด้วยเหตุนี้ เราจะกล่าวถึงข้อกำหนดเบื้องต้น ขั้นตอนทั้งหมดในการติดตั้ง OpenSSH โดยใช้วิธีการต่างๆ และวิธีการเริ่มต้นใช้งานในบทความนี้



วิธีการติดตั้ง OpenSSH

ก่อนที่คุณจะเริ่มต้น คุณจะต้องแน่ใจว่าได้ปฏิบัติตามข้อกำหนดต่อไปนี้:

คุณสมบัติเสริม (GUI)

วิธีที่ง่ายที่สุดในการติดตั้ง OpenSSH บน Windows คือจากหน้าคุณสมบัติเสริมในการตั้งค่า Windows

  1. กด Win + I แล้วไปที่ แอป > คุณสมบัติเสริม .
  2. คลิกที่ ดูคุณสมบัติ ใน เพิ่มคุณสมบัติเสริม ส่วน.
    เพิ่มตัวเลือกคุณสมบัติ
  3. เลือก ไคลเอนต์ OpenSSH และ เซิร์ฟเวอร์ OpenSSH จากรายการแล้วกด Next > Install
    ติดตั้ง openssh ไคลเอ็นต์เซิร์ฟเวอร์
  4. หลังจากติดตั้งส่วนประกอบแล้ว ให้กด Win + R พิมพ์ |_+_| แล้วกด Enter
  5. ค้นหา เซิร์ฟเวอร์ OpenSSH SSH และ ตัวแทนการรับรองความถูกต้อง OpenSSH บริการที่นี่.
    opensh-ssh-เซิร์ฟเวอร์บริการ-sshd
  6. ดับเบิลคลิกและ เริ่ม บริการเหล่านี้ หากต้องการ คุณยังสามารถเปลี่ยนประเภทการเริ่มต้นเป็น อัตโนมัติ . บันทึกการเปลี่ยนแปลงในภายหลัง
    sshd-startup-type-อัตโนมัติ
  7. จากนั้นกด Win + R พิมพ์ |_+_| แล้วกด Enter
  8. ในส่วนกฎขาเข้า ตรวจสอบให้แน่ใจว่า เซิร์ฟเวอร์ OpenSSH SSH (sshd) เปิดใช้งานกฎแล้ว
    opensh-windows-ไฟร์วอลล์-กฎ
  9. การตั้งค่าพื้นฐานเสร็จสมบูรณ์ ตรวจสอบ เริ่มต้นใช้งาน OpenSSH ส่วนสำหรับขั้นตอนต่อไป คุณยังสามารถทำตามขั้นตอนเดียวกันนี้เพื่อถอนการติดตั้ง OpenSSH หากจำเป็น

พาวเวอร์เชลล์

หากคุณต้องการให้มีประสิทธิภาพมากขึ้น คุณสามารถทำตามขั้นตอนเดียวกับด้านบนในหน้าต่าง PowerShell ที่ยกระดับได้

  1. กด Win + R พิมพ์ |_+_| แล้วกด CTRL + Shift + Enter
  2. ขั้นแรก ตรวจสอบให้แน่ใจว่ามีส่วนประกอบ OpenSSH:
    |_+_|
    รับ windows ความสามารถ openssh
  3. ถัดไป ติดตั้งส่วนประกอบไคลเอนต์และเซิร์ฟเวอร์ OpenSSH:
    |_+_|
    |_+_|
    เพิ่มหน้าต่างความสามารถ openssh
  4. เริ่มต้น sshd และ ssh-ตัวแทน บริการและเปลี่ยนประเภทการเริ่มต้นเป็นอัตโนมัติดังนี้:
    |_+_|
    |_+_|
    set-service-sshd-status-running
  1. ถัดไป กำหนดค่ากฎไฟร์วอลล์ Windows ที่จำเป็นสำหรับการรับส่งข้อมูล SSH:
    |_+_|
    new-net-firewall-rule-ssh
  2. ตอนนี้การตั้งค่าเสร็จสมบูรณ์แล้ว คุณสามารถเริ่มใช้ SSH ได้ อ้างถึง เริ่มต้นใช้งาน OpenSSH หากคุณต้องการความช่วยเหลือในเรื่องนี้
  3. นอกจากนี้ หากคุณต้องการถอนการติดตั้งคอมโพเนนต์ OpenSSH ต่อไปนี้เป็นคำสั่งที่จำเป็น:
    |_+_|
    |_+_|
    ลบ windows ความสามารถ ssh

GitHub (เอ็มเอสไอ)

หากคุณดาวน์โหลดไฟล์ แพ็คเกจ OpenSSH จาก GitHub คุณสามารถติดตั้งส่วนประกอบโดยใช้โปรแกรมติดตั้ง MSI ด้วย |_+_|

  • ตัวอย่างเช่น หากไฟล์อยู่ในไดเร็กทอรีปัจจุบันของคุณ ให้ใช้
    |_+_|
  • หากไฟล์อยู่ในโฟลเดอร์ดาวน์โหลดของคุณให้ใช้
    |_+_|
  • หากต้องการถอนการติดตั้ง OpenSSH ให้ใช้
    |_+_|
  • สมมติว่าโปรแกรมติดตั้งอยู่ในไดเร็กทอรีปัจจุบัน และคุณต้องการติดตั้งหรือลบส่วนประกอบบางอย่างเท่านั้น คุณสามารถใช้คำสั่งต่อไปนี้ได้ตามต้องการ:
    |_+_|
    |_+_|
    |_+_|
    |_+_|

หลังจากติดตั้งส่วนประกอบแล้ว ให้ทำตามขั้นตอนเหล่านี้เพื่อ อัพเดตตัวแปร PATH ของระบบ :

  1. กด Win + R พิมพ์ |_+_| แล้วกด Enter
  2. คลิกที่ ตัวแปรสภาพแวดล้อม . ในส่วน ตัวแปรระบบ ให้เลือก เส้นทาง และคลิกที่ แก้ไข .
    ตัวแปรเส้นทางระบบ windows
  3. ตรวจสอบ |_+_| ที่นี่. หากไม่มีให้คลิก ใหม่ และเพิ่มลงในรายการ โปรดทราบว่านี่คือเส้นทางการติดตั้งเริ่มต้น หากคุณติดตั้ง OpenSSH บนพาธอื่น ให้เปลี่ยนค่าตามขั้นตอนนี้
    opensh-เส้นทางระบบ
  4. กด ตกลง > ตกลง เพื่อบันทึกการเปลี่ยนแปลง

ตอนนี้ คุณสามารถเรียกใช้ |_+_| ใน PowerShell เพื่อตรวจสอบว่าติดตั้งส่วนประกอบอย่างถูกต้อง หากคุณจำเป็นต้องเริ่มบริการที่จำเป็นหรือเปิดพอร์ตด้วย โปรดดูขั้นตอนในส่วนใดส่วนหนึ่งก่อนหน้านี้

สุดท้าย หากคุณต้องการใช้วิธีอื่นๆ เช่น Winget หรือ Chocolatey เราขอแนะนำให้ตรวจสอบ วิกิ OpenSSH บน GitHub . นอกจากคำแนะนำในการติดตั้งแล้ว ยังมีตัวอย่างการใช้งานและคู่มือต่างๆ ที่คุณอาจพบว่ามีประโยชน์

การกำหนดค่าเซิร์ฟเวอร์ OpenSSH

ตามค่าเริ่มต้น เซิร์ฟเวอร์ OpenSSH (sshd) ใน Windows จะอ่านข้อมูลการกำหนดค่าจาก |_+_| ตัวเลือกการกำหนดค่าจำนวนมากแสดงอยู่ในไฟล์นี้ แต่เนื่องจากการใช้งาน Windows ของ OpenSSH ยังค่อนข้างใหม่ ปัจจุบันรองรับเฉพาะการกำหนดค่าบางอย่างเท่านั้น

เราได้แสดงรายการการเปลี่ยนแปลงการกำหนดค่าที่ทำกันโดยทั่วไปด้านล่างเพื่อเป็นข้อมูลอ้างอิง เราขอแนะนำให้ตรวจสอบ คู่มือการกำหนดค่าเซิร์ฟเวอร์ OpenSSH จาก Microsoft หรือ หนึ่งใน GitHub สำหรับรายการตัวเลือกทั้งหมด นอกจากนี้ อย่าลืมรีสตาร์ทบริการ sshd เพื่อใช้การเปลี่ยนแปลงใดๆ ที่เกิดขึ้น

  1. ไม่แสดงความคิดเห็น ท่าเรือ บรรทัดและเปลี่ยนค่าถ้าคุณต้องการเปลี่ยนพอร์ต SSH คุณจะต้องเพิ่มกฎไฟร์วอลล์เพื่ออนุญาตการรับส่งข้อมูลขาเข้าบนพอร์ตดังกล่าว
    sshd-config-ไฟล์
  2. เปลี่ยน ฟังที่อยู่ จาก 0.0.0.0 เป็นอย่างอื่น หากคุณต้องการฟังที่อยู่ IP เฉพาะ เพิ่ม ListenAddress หลายบรรทัดในลักษณะเดียวกัน หากคุณต้องการฟังที่อยู่ IP หลายรายการ
  3. เปลี่ยน GSSAPIAการตรวจสอบสิทธิ์ เป็น ใช่ หากคุณต้องการใช้การรับรองความถูกต้องของ Kerberos
  4. เพิ่ม AllowGroups , อนุญาตผู้ใช้ , กลุ่มปฏิเสธ , และ ปฏิเสธผู้ใช้ คำสั่งเพื่อควบคุมกลุ่มและผู้ใช้ที่สามารถเข้าถึงเซิร์ฟเวอร์ SSH
    • หากทำงานกับผู้ใช้โดเมนและกลุ่ม ให้ตรวจสอบตัวอย่างต่อไปนี้สำหรับการอ้างอิงรูปแบบ:
      |_+_|
      |_+_|
      |_+_|
    • หากต้องการจัดการกับผู้ใช้และกลุ่มในเวิร์กกรุ๊ป ให้ตรวจสอบตัวอย่างเหล่านี้แทน:
      |_+_|
      |_+_|
  5. สุดท้าย คุณสามารถใช้คำสั่งต่อไปนี้ใน PowerShell เพื่อตั้งค่าเชลล์ OpenSSH เริ่มต้นเป็น PowerShell แทนพรอมต์คำสั่ง :
    |_+_|
    เปลี่ยน ssh-default-shell-to-powershell

เริ่มต้นใช้งาน OpenSSH

คุณสามารถใช้วิธีการใด ๆ ที่ระบุไว้ด้านบนเพื่อตั้งค่าระบบ Windows อื่นเป็นไคลเอนต์ OpenSSH เซิร์ฟเวอร์ หรือทั้งสองอย่าง และหากคุณยังใหม่กับ SSH ต่อไปนี้เป็นขั้นตอนพื้นฐานในการเริ่มต้น:

  1. ขั้นแรก กด Win + R พิมพ์ |_+_| แล้วกด Enter
  2. ตรวจสอบว่าคุณเป็น เวิร์กกรุ๊ปหรือโดเมน ผู้ใช้ที่นี่
    ระบบคุณสมบัติเวิร์กกรุ๊ปโดเมน
  3. กด Win + R พิมพ์ |_+_| แล้วกด Enter
  4. หากคุณเป็นผู้ใช้เวิร์กกรุ๊ป ให้ป้อนคำสั่งต่อไปนี้แล้วข้ามไปที่ ขั้นตอนที่ 6 :
    |_+_|
    ssh-user@host
  5. หากคุณเป็นผู้ใช้โดเมน ให้ป้อนคำสั่งใดๆ ต่อไปนี้:
    |_+_|
    |_+_|
    |_+_|
    |_+_|
    ssh-domain-user-command
  1. ในการเข้าสู่ระบบครั้งแรก คุณจะต้องยืนยันว่าโฮสต์นั้นเชื่อถือได้ หากคุณป้อน ใช่ โฮสต์จะถูกเพิ่มลงในรายการโฮสต์ที่รู้จัก
    ssh-ลายนิ้วมือ
  2. ตอนนี้ป้อนรหัสผ่านของบัญชีโฮสต์แล้วกด Enter

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

cox cable ปัญหากล่องมินิ
  1. บนเซิร์ฟเวอร์ที่เข้าร่วมโดเมน ให้ไปที่ |_+_|
  2. เปิด sshd_config ไฟล์ด้วยโปรแกรมแก้ไขข้อความ
  3. ยกเลิกการแสดงความคิดเห็นบรรทัด GSSAPIAuthentication ตั้งค่าเป็น ใช่ และบันทึกการเปลี่ยนแปลง
    gssapi-authentication-yes-sshd-config
  4. ใน Powershell ให้ใช้คำสั่งต่อไปนี้เพื่อเริ่มบริการ sshd ใหม่และใช้การเปลี่ยนแปลงจากด้านบน:
    |_+_|
    |_+_|
    net-stop-sshd-net-start-sshd
  5. ตอนนี้ บนไคลเอนต์ Windows ที่เข้าสู่ระบบในฐานะผู้ใช้โดเมน ให้ป้อน |_+_|

ตรวจสอบสิทธิ์ด้วยคีย์ SSH

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

คีย์สาธารณะของผู้ใช้จะถูกเก็บไว้บนเซิร์ฟเวอร์ SSH และจะถูกเปรียบเทียบกับคีย์ส่วนตัวฝั่งไคลเอนต์สำหรับการตรวจสอบสิทธิ์ ตราบใดที่คีย์ส่วนตัวได้รับการป้องกันอย่างเหมาะสม วิธีการตรวจสอบความถูกต้องนี้จะปลอดภัยกว่ามาก

คุณจะต้องสร้างคู่คีย์บนระบบไคลเอ็นต์ สร้างไฟล์คีย์ที่ได้รับอนุญาตบนเซิร์ฟเวอร์ และเก็บคีย์สาธารณะของไคลเอ็นต์ไว้ในไฟล์นี้ ในการดำเนินการนี้ ให้เริ่มด้วยขั้นตอนต่อไปนี้บนระบบเซิร์ฟเวอร์:

  1. กด Win + R พิมพ์ |_+_| แล้วกด CTRL + Shift + Enter
  2. สร้าง administrators_authorized_keys ไฟล์.
    • สำหรับผู้ใช้ในกลุ่มผู้ดูแลระบบ:
      |_+_|
    • สำหรับผู้ใช้มาตรฐาน:
      |_+_|
  3. ในกรณีของเรา เราสร้างไฟล์โดยใช้บัญชีผู้ดูแลระบบ หากคุณใช้บัญชีมาตรฐาน ให้เปลี่ยนเส้นทางไฟล์ตามคำสั่งที่เหลือ
  4. ตั้งค่าสิทธิ์การเข้าถึงสำหรับไฟล์คีย์ด้วย:
    |_+_|

ตอนนี้เปิดตัว หน้าต่าง PowerShell ยกระดับ บนระบบไคลเอนต์และทำตามขั้นตอนเหล่านี้:

  1. ใช้ |_+_| เพื่อไปที่ไดเร็กทอรี .ssh และสร้างคู่คีย์ด้วย |_+_|
    ssh-keygen-generate-public-private-rsa-key
  2. เมื่อได้รับแจ้งให้ระบุตำแหน่งไฟล์ ให้กด เข้า เพื่อใช้ค่าเริ่มต้น:
    |_+_|
  3. เพิ่มข้อความรหัสผ่านสำหรับคีย์ส่วนตัวของคุณ หากคุณต้องการปรับปรุงความปลอดภัยเพิ่มเติม
    ssh-keygen-randomart-ภาพ
  4. ตอนนี้เปลี่ยน ผู้ใช้ และ เจ้าภาพ ค่าและเรียกใช้คำสั่งที่แสดงด้านล่าง จะเพิ่มรหัสสาธารณะของลูกค้าไปยังไฟล์รหัสที่ได้รับอนุญาตบนเซิร์ฟเวอร์
    • |_+_|
    • |_+_|
      ต่อท้าย ssh-client-public-key-to-server
  5. ป้อนรหัสผ่านของคุณเพื่ออนุมัติการดำเนินการ ตอนนี้ คุณจะสามารถเชื่อมต่อโดยใช้การตรวจสอบสิทธิ์คีย์สาธารณะ

การแก้ไขปัญหาข้อผิดพลาดทั่วไป

ข้อผิดพลาด SSH เช่น การเชื่อมต่อพอร์ต 22 ถูกปฏิเสธ หรือ Connection Timed Out เป็นเรื่องปกติ หากคุณทำตามขั้นตอนจากบทความนี้ ขั้นตอนพื้นฐาน เช่น การตรวจสอบว่าบริการ SSH กำลังทำงานอยู่ การเริ่มระบบใหม่ การอนุญาตการรับส่งข้อมูล SSH ผ่านไฟร์วอลล์ การเพิ่ม SSH ใน PATH ของระบบ ฯลฯ จะครอบคลุมอยู่แล้ว

นอกจากนี้ ต่อไปนี้เป็นขั้นตอนการแก้ปัญหาเพิ่มเติมที่ควรลอง:

  • ขั้นแรก ตรวจสอบให้แน่ใจว่าได้ทำตามขั้นตอนที่กล่าวถึงข้างต้นบนระบบรีโมตด้วย
  • ลองอีกครั้งและตรวจสอบให้แน่ใจว่าคุณป้อนข้อมูลประจำตัวที่ถูกต้อง
  • ใช้ที่อยู่ IP ของโฮสต์แทนชื่อโฮสต์ หากใช้งานได้ แก้ไขปัญหา DNS โดยการล้างแคชหรือใช้เซิร์ฟเวอร์อื่น
  • Ping โฮสต์เพื่อให้แน่ใจว่าไม่มีการสูญเสียแพ็กเก็ต
  • ตรวจสอบ พอร์ต SSH และ ฟังที่อยู่ ในไฟล์ sshd_config ของเซิร์ฟเวอร์
  • ใช้แฟล็กแบบละเอียด (|_+_| หรือ |_+_|) เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่ผิดพลาด

ดูสิ่งนี้ด้วย: