Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

แก้ไขข้อผิดพลาดการอนุญาต SSH ที่ถูกปฏิเสธ:คำแนะนำทีละขั้นตอนเพื่อการเข้าสู่ระบบที่ปลอดภัย

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

การอนุญาต SSH ถูกปฏิเสธ กรุณาลองอีกครั้งเกิดข้อผิดพลาด

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

บทความนี้จะสาธิตวิธีแก้ปัญหาต่างๆ สำหรับการแก้ไขข้อผิดพลาด “สิทธิ์ SSH ถูกปฏิเสธ” แต่ก่อนหน้านั้น เรามาดูสาเหตุของข้อผิดพลาดนี้กันดีกว่า

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

สาเหตุทั่วไปอีกประการหนึ่งของข้อผิดพลาดนี้คือการไม่สามารถเข้าถึงโฟลเดอร์ "ssh" ซึ่งโดยพื้นฐานแล้วหมายถึงการเข้าถึง Authorized_keys ถูกปิดใช้งาน

โซลูชันที่ 1:อนุญาตการตรวจสอบสิทธิ์รหัสผ่านบนเซิร์ฟเวอร์ SSH

ตามที่กล่าวไว้ข้างต้น หากเซิร์ฟเวอร์ไม่ได้เปิดใช้งานการเชื่อมต่อ SSH ด้วยการตรวจสอบรหัสผ่าน การเชื่อมต่อมักจะส่งผลให้เกิดความล้มเหลว

  1. เพื่อหลีกเลี่ยงปัญหานี้ ให้ไปที่เซิร์ฟเวอร์ SSH และจาก PC \ Server นั้น ให้เปิดไฟล์การกำหนดค่าโดยใช้คำสั่งต่อไปนี้:
    sudo nano /etc/ssh/sshd_config

    คำสั่งการกำหนดค่านี้จะเปิดขึ้นในเทอร์มินัล:

    ไฟล์การกำหนดค่า SSH
  2. ในไฟล์การกำหนดค่านี้ ให้ค้นหาบรรทัด “Password Authentication” และ “uncomment” ในบรรทัดโดยลบสัญลักษณ์ “#” ที่ต่อท้าย:ค้นหา PasswordAuthentication เปิดใช้งาน PasswordAuthentication
  3. เมื่อเสร็จแล้ว ให้บันทึกและออกจากไฟล์การกำหนดค่าโดยกด "CTRL + O" จากนั้น "CTRL + X" หลังจากนั้น ขั้นตอนต่อไปคือการรีสตาร์ทบริการของ SSH โดยใช้คำสั่งต่อไปนี้:
    sudo systemctl restart sshd
    กำลังเริ่มบริการ SSH ใหม่
  4. เมื่อเสร็จแล้ว ให้เชื่อมต่อกับเซิร์ฟเวอร์ SSH อีกครั้งจากไคลเอนต์เพื่อรับผลลัพธ์ต่อไปนี้:เชื่อมต่อเซิร์ฟเวอร์ SSH แล้ว

คุณแก้ไขข้อผิดพลาดและเชื่อมต่อกับเซิร์ฟเวอร์ SSH ได้สำเร็จแล้ว

โซลูชันที่ 2:เปิดใช้งานการตรวจสอบสิทธิ์คีย์สาธารณะ

บางครั้ง ผู้ใช้อาจได้รับการเปลี่ยนแปลง \ รูปแบบของข้อผิดพลาด ซึ่งสถานะข้อผิดพลาดกลายเป็น "สิทธิ์ SSH ถูกปฏิเสธ (คีย์สาธารณะ)" ข้อผิดพลาดนี้เกิดจากการไม่ได้เปิดใช้งานการรับรองความถูกต้องสาธารณะบนเซิร์ฟเวอร์ SSH

  1. สำหรับกรณีดังกล่าว ให้ไปที่ SSH Server PC และเปิดไฟล์การกำหนดค่าโดยใช้คำสั่งต่อไปนี้:
    sudo nano /etc/ssh/sshd_config

    ในไฟล์การกำหนดค่า เพียงปิดการใช้งานการเข้าสู่ระบบรูทและเปิดใช้งาน “PublicKeyAuthentication”:

    กำหนดค่า RootLogin และ PubkeyAuthentication
  2. หลังจากนั้น ตรวจสอบให้แน่ใจว่าตัวเลือก UsePAM ถูกเปิดใช้งานในไฟล์การกำหนดค่าด้วย:เปิดใช้งานการกำหนดค่า UsePAM
  3. อีกครั้ง บันทึกและออกจากไฟล์โดยใช้ “CTRL + O” จากนั้น “CTRL + X” จากนั้นรีสตาร์ทบริการของ SSH โดยใช้คำสั่ง:
     sudo nano /etc/ssh/sshd_config
  4. เมื่อเสร็จแล้ว ให้ลองเชื่อมต่ออีกครั้งเพื่อให้ได้ผลลัพธ์ต่อไปนี้:
    การเชื่อมต่อเซิร์ฟเวอร์ SSH สำเร็จ

คุณได้แก้ไขข้อผิดพลาด SSH Permission Denied (Public Key) แล้ว

โซลูชันที่ 3:อนุญาตสิทธิ์ในไดเรกทอรี SSH

บ่อยครั้งที่คีย์สาธารณะถูกจัดเก็บไว้ในไดเร็กทอรีย่อยคีย์ที่ได้รับอนุญาตภายในไดเร็กทอรี "ssh" และหากการอนุญาตของไดเร็กทอรีย่อยนี้หรือไดเร็กทอรีทั้งหมดไม่ถูกต้อง การเชื่อมต่อ SSH จะส่งคืนข้อผิดพลาดในท้ายที่สุด

  1. ในกรณีเช่นนี้ เพียงเปลี่ยนการอนุญาตของไดเร็กทอรี "authorized_keys" โดยใช้คำสั่งต่อไปนี้:
    sudo chmod 600 ~/.ssh/authorized_keys

    คำสั่งนี้จะเปิดใช้งานสิทธิ์การอ่านและเขียนสำหรับคีย์ที่ได้รับอนุญาต 

  2. หลังจากนั้นให้สิทธิ์ดำเนินการแก่ไดเร็กทอรีหลักโดยใช้คำสั่ง:
    sudo chmod 700 ~/.ssh

    หลังจากรันคำสั่งเหล่านี้แล้ว ให้ลองเชื่อมต่อ SSH กับเซิร์ฟเวอร์ SSH เพื่อให้ได้ผลลัพธ์ต่อไปนี้:

    เชื่อมต่อกับเซิร์ฟเวอร์ SSH แล้ว

ด่านหน้าแสดงให้เห็นว่าข้อผิดพลาดได้รับการแก้ไขแล้ว

การแก้ไขโบนัสสำหรับการอนุญาต SSH ถูกปฏิเสธ

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

ลองรหัสผ่านอีกครั้ง “ป้อนรหัสผ่านผิด”

ในกรณีเช่นนี้ โปรดติดต่อฝ่ายสนับสนุนเซิร์ฟเวอร์ SSH และสอบถามว่าพวกเขาได้เปลี่ยนรหัสผ่านหรือเพียงตรวจสอบอีกครั้งว่าคุณพิมพ์ผิดหรือไม่ หลังจากนั้น คุณจะสามารถอนุมานข้อผิดพลาดและเชื่อมต่อกับเซิร์ฟเวอร์ SSH ได้:

เซิร์ฟเวอร์ SSH กำลังทำงานอยู่

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

เกี่ยวกับผู้เขียน

แก้ไขข้อผิดพลาดการอนุญาต SSH ที่ถูกปฏิเสธ:คำแนะนำทีละขั้นตอนเพื่อการเข้าสู่ระบบที่ปลอดภัย

มูฮัมหมัด ซูเบียน

Muhammad Zubyan เป็นผู้เชี่ยวชาญด้านการสนับสนุนด้านไอทีของ Google ที่ได้รับการรับรองและมีประสบการณ์ยาวนานกว่า 7 ปี เขาทำงานกับคอมพิวเตอร์มากกว่า 1,500 เครื่อง และได้รับข้อมูลเชิงลึกอันมีค่าซึ่งช่วยให้เขาตรวจจับและแก้ไขปัญหาต้นตอที่ซับซ้อนของปัญหาและข้อผิดพลาดที่เกี่ยวข้องกับ Windows ได้ นอกเหนือจากการจัดการ Appuals ในฐานะบรรณาธิการอาวุโสแล้ว ปัจจุบันเขากำลังพัฒนาโปรแกรม Game Optimization ของตัวเองที่ให้ความสำคัญกับทั้งนักเล่นเกมและผู้ใช้ทั่วไป