คีย์ SSH (เชลล์ที่ปลอดภัย) ถูกใช้ภายในโปรโตคอล SSH เพื่อตรวจสอบสิทธิ์เซสชันและสร้างการเชื่อมต่อระหว่างเครื่องภายในและเซิร์ฟเวอร์ SSH ในขั้นตอนปกติ วิธีที่ดีที่สุดในการสร้างเซิร์ฟเวอร์นี้คือการใช้คีย์สาธารณะ เมื่อสร้างการเชื่อมต่อเซิร์ฟเวอร์แล้ว SSH จะกำจัดข้อกำหนดรหัสผ่านในการเข้าสู่ระบบแต่ละครั้ง และสร้างการเชื่อมต่อกับเซิร์ฟเวอร์นั้นโดยอัตโนมัติ
การอนุญาต SSH ถูกปฏิเสธ กรุณาลองอีกครั้งเกิดข้อผิดพลาดอย่างไรก็ตาม ในขณะที่ใช้คีย์สาธารณะ บางครั้งคำขอเชื่อมต่อของไคลเอนต์ SSH จะถูกปฏิเสธโดยเซิร์ฟเวอร์ ซึ่งอาจทำให้เกิดข้อผิดพลาดในการปฏิเสธสิทธิ์ SSH ได้
บทความนี้จะสาธิตวิธีแก้ปัญหาต่างๆ สำหรับการแก้ไขข้อผิดพลาด “สิทธิ์ SSH ถูกปฏิเสธ” แต่ก่อนหน้านั้น เรามาดูสาเหตุของข้อผิดพลาดนี้กันดีกว่า
มีสาเหตุสองประการที่ทำให้เกิดข้อผิดพลาดนี้ได้ สาเหตุที่พบบ่อยที่สุดประการหนึ่งคือการตรวจสอบรหัสผ่านถูกปิดใช้งานบนเซิร์ฟเวอร์ SSH
สาเหตุทั่วไปอีกประการหนึ่งของข้อผิดพลาดนี้คือการไม่สามารถเข้าถึงโฟลเดอร์ "ssh" ซึ่งโดยพื้นฐานแล้วหมายถึงการเข้าถึง Authorized_keys ถูกปิดใช้งาน
โซลูชันที่ 1:อนุญาตการตรวจสอบสิทธิ์รหัสผ่านบนเซิร์ฟเวอร์ SSH
ตามที่กล่าวไว้ข้างต้น หากเซิร์ฟเวอร์ไม่ได้เปิดใช้งานการเชื่อมต่อ SSH ด้วยการตรวจสอบรหัสผ่าน การเชื่อมต่อมักจะส่งผลให้เกิดความล้มเหลว
- เพื่อหลีกเลี่ยงปัญหานี้ ให้ไปที่เซิร์ฟเวอร์ SSH และจาก PC \ Server นั้น ให้เปิดไฟล์การกำหนดค่าโดยใช้คำสั่งต่อไปนี้:
sudo nano /etc/ssh/sshd_config
คำสั่งการกำหนดค่านี้จะเปิดขึ้นในเทอร์มินัล:
ไฟล์การกำหนดค่า SSH - ในไฟล์การกำหนดค่านี้ ให้ค้นหาบรรทัด “Password Authentication” และ “uncomment” ในบรรทัดโดยลบสัญลักษณ์ “#” ที่ต่อท้าย:ค้นหา PasswordAuthentication เปิดใช้งาน PasswordAuthentication
- เมื่อเสร็จแล้ว ให้บันทึกและออกจากไฟล์การกำหนดค่าโดยกด "CTRL + O" จากนั้น "CTRL + X" หลังจากนั้น ขั้นตอนต่อไปคือการรีสตาร์ทบริการของ SSH โดยใช้คำสั่งต่อไปนี้:
sudo systemctl restart sshd
กำลังเริ่มบริการ SSH ใหม่ - เมื่อเสร็จแล้ว ให้เชื่อมต่อกับเซิร์ฟเวอร์ SSH อีกครั้งจากไคลเอนต์เพื่อรับผลลัพธ์ต่อไปนี้:เชื่อมต่อเซิร์ฟเวอร์ SSH แล้ว
คุณแก้ไขข้อผิดพลาดและเชื่อมต่อกับเซิร์ฟเวอร์ SSH ได้สำเร็จแล้ว
โซลูชันที่ 2:เปิดใช้งานการตรวจสอบสิทธิ์คีย์สาธารณะ
บางครั้ง ผู้ใช้อาจได้รับการเปลี่ยนแปลง \ รูปแบบของข้อผิดพลาด ซึ่งสถานะข้อผิดพลาดกลายเป็น "สิทธิ์ SSH ถูกปฏิเสธ (คีย์สาธารณะ)" ข้อผิดพลาดนี้เกิดจากการไม่ได้เปิดใช้งานการรับรองความถูกต้องสาธารณะบนเซิร์ฟเวอร์ SSH
- สำหรับกรณีดังกล่าว ให้ไปที่ SSH Server PC และเปิดไฟล์การกำหนดค่าโดยใช้คำสั่งต่อไปนี้:
sudo nano /etc/ssh/sshd_config
ในไฟล์การกำหนดค่า เพียงปิดการใช้งานการเข้าสู่ระบบรูทและเปิดใช้งาน “PublicKeyAuthentication”:
กำหนดค่า RootLogin และ PubkeyAuthentication - หลังจากนั้น ตรวจสอบให้แน่ใจว่าตัวเลือก UsePAM ถูกเปิดใช้งานในไฟล์การกำหนดค่าด้วย:เปิดใช้งานการกำหนดค่า UsePAM
- อีกครั้ง บันทึกและออกจากไฟล์โดยใช้ “CTRL + O” จากนั้น “CTRL + X” จากนั้นรีสตาร์ทบริการของ SSH โดยใช้คำสั่ง:
sudo nano /etc/ssh/sshd_config
- เมื่อเสร็จแล้ว ให้ลองเชื่อมต่ออีกครั้งเพื่อให้ได้ผลลัพธ์ต่อไปนี้:
การเชื่อมต่อเซิร์ฟเวอร์ SSH สำเร็จ
คุณได้แก้ไขข้อผิดพลาด SSH Permission Denied (Public Key) แล้ว
โซลูชันที่ 3:อนุญาตสิทธิ์ในไดเรกทอรี SSH
บ่อยครั้งที่คีย์สาธารณะถูกจัดเก็บไว้ในไดเร็กทอรีย่อยคีย์ที่ได้รับอนุญาตภายในไดเร็กทอรี "ssh" และหากการอนุญาตของไดเร็กทอรีย่อยนี้หรือไดเร็กทอรีทั้งหมดไม่ถูกต้อง การเชื่อมต่อ SSH จะส่งคืนข้อผิดพลาดในท้ายที่สุด
- ในกรณีเช่นนี้ เพียงเปลี่ยนการอนุญาตของไดเร็กทอรี "authorized_keys" โดยใช้คำสั่งต่อไปนี้:
sudo chmod 600 ~/.ssh/authorized_keys
คำสั่งนี้จะเปิดใช้งานสิทธิ์การอ่านและเขียนสำหรับคีย์ที่ได้รับอนุญาต ป>
- หลังจากนั้นให้สิทธิ์ดำเนินการแก่ไดเร็กทอรีหลักโดยใช้คำสั่ง:
sudo chmod 700 ~/.ssh
หลังจากรันคำสั่งเหล่านี้แล้ว ให้ลองเชื่อมต่อ SSH กับเซิร์ฟเวอร์ SSH เพื่อให้ได้ผลลัพธ์ต่อไปนี้:
เชื่อมต่อกับเซิร์ฟเวอร์ SSH แล้ว
ด่านหน้าแสดงให้เห็นว่าข้อผิดพลาดได้รับการแก้ไขแล้ว
การแก้ไขโบนัสสำหรับการอนุญาต SSH ถูกปฏิเสธ
ข้อผิดพลาด “สิทธิ์ถูกปฏิเสธ” อาจเกิดขึ้นเมื่อรหัสผ่านสำหรับเซิร์ฟเวอร์ SSH ไม่ถูกต้อง สาเหตุหลักคือการพิมพ์ผิด หรือบางครั้งเซิร์ฟเวอร์ได้เปลี่ยนรหัสผ่าน และไคลเอ็นต์ไม่ทราบเรื่องนี้ ในกรณีเช่นนี้ เมื่อผู้ใช้ระบุรหัสผ่านสำหรับการเชื่อมต่อ SSH ข้อผิดพลาดต่อไปนี้จะแสดงบนเทอร์มินัล:
ลองรหัสผ่านอีกครั้ง “ป้อนรหัสผ่านผิด”ในกรณีเช่นนี้ โปรดติดต่อฝ่ายสนับสนุนเซิร์ฟเวอร์ SSH และสอบถามว่าพวกเขาได้เปลี่ยนรหัสผ่านหรือเพียงตรวจสอบอีกครั้งว่าคุณพิมพ์ผิดหรือไม่ หลังจากนั้น คุณจะสามารถอนุมานข้อผิดพลาดและเชื่อมต่อกับเซิร์ฟเวอร์ SSH ได้:
เซิร์ฟเวอร์ SSH กำลังทำงานอยู่สิทธิ์ SSH Denied ไม่ใช่สิทธิ์ใหม่และมีสาเหตุหลักมาจากไม่ได้เปิดใช้งานการตรวจสอบสิทธิ์ด้วยรหัสผ่าน ไม่เปิดใช้งานการตรวจสอบสิทธิ์คีย์สาธารณะ และยังเกิดจากการมีสิทธิ์ที่ไม่ถูกต้องในไดเร็กทอรี "ssh" หรือ "authroized_keys" คู่มือนี้ได้อธิบายรายละเอียดเกี่ยวกับวิธีแก้ปัญหาที่สามารถใช้เพื่อแก้ไขข้อผิดพลาดและดำเนินการเชื่อมต่อต่อไป นอกจากนี้ ข้อผิดพลาดนี้อาจเกิดจากการเปลี่ยนรหัสผ่านโดยเซิร์ฟเวอร์ SSH หรือจากการพิมพ์ผิด ในกรณีนี้ วิธีที่ดีที่สุดคือติดต่อฝ่ายสนับสนุนของเซิร์ฟเวอร์ SSH หรือพิมพ์รหัสผ่านอีกครั้งเพื่อให้แน่ใจว่าไม่มีการพิมพ์ผิด
เกี่ยวกับผู้เขียน
มูฮัมหมัด ซูเบียน
Muhammad Zubyan เป็นผู้เชี่ยวชาญด้านการสนับสนุนด้านไอทีของ Google ที่ได้รับการรับรองและมีประสบการณ์ยาวนานกว่า 7 ปี เขาทำงานกับคอมพิวเตอร์มากกว่า 1,500 เครื่อง และได้รับข้อมูลเชิงลึกอันมีค่าซึ่งช่วยให้เขาตรวจจับและแก้ไขปัญหาต้นตอที่ซับซ้อนของปัญหาและข้อผิดพลาดที่เกี่ยวข้องกับ Windows ได้ นอกเหนือจากการจัดการ Appuals ในฐานะบรรณาธิการอาวุโสแล้ว ปัจจุบันเขากำลังพัฒนาโปรแกรม Game Optimization ของตัวเองที่ให้ความสำคัญกับทั้งนักเล่นเกมและผู้ใช้ทั่วไป ป>