วิธีตั้งค่าคีย์ SSH บน Ubuntu 20.04

How Set Up Ssh Keys Ubuntu 20



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

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







ขั้นตอนที่ 1: สร้างคู่คีย์

เราจะเริ่มต้นด้วยการสร้างคู่คีย์บนระบบของลูกค้าก่อนด้วยการเข้าถึงรูทตามประเภทดังต่อไปนี้:



$ssh-keygen



สิ่งนี้จะทริกเกอร์ ssh-keygen ล่าสุดเพื่อสร้างคู่คีย์ RSA 3072 บิตตามค่าเริ่มต้น คุณสามารถเพิ่มแฟล็ก –b 4086 เพื่อสร้างคีย์ที่ใหญ่ขึ้นได้ กด Enter และมันจะเก็บคู่คีย์ไว้ในไดเร็กทอรีย่อย .ssh/ โปรดทราบว่าหากคุณเป็นแขกบนเซิร์ฟเวอร์ที่มีการติดตั้งคีย์แล้ว ข้อความแจ้งจะถามคุณว่าคุณต้องการเขียนทับหรือไม่ หากเป็นกรณีนี้ ให้พิมพ์ 'y' เพื่อส่งสัญญาณว่าใช่





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

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

ต่อไป เราต้องโอนคีย์สาธารณะไปยังเซิร์ฟเวอร์อูบุนตูของคุณ



คุณสามารถใช้ยูทิลิตี ssh-copy-id โดยใช้คำสั่งต่อไปนี้:

$ssh-copy-id ชื่อผู้ใช้@server_host

สิ่งนี้ควรทำเคล็ดลับภายในไม่กี่วินาที หากคัดลอกคีย์สำเร็จแล้ว ให้ไปยังขั้นตอนที่สาม

บางครั้งมันก็เกิดขึ้นที่วิธี ssh-copy-id ล้มเหลวหรือไม่สามารถใช้ได้ ในกรณีนี้ คุณจะต้องคัดลอกผ่าน SSH ที่ใช้รหัสผ่าน คุณสามารถทำได้โดยใช้คำสั่ง cat และอย่าลืมเพิ่มสัญลักษณ์ >> เพื่อเพิ่มเนื้อหาแทนที่จะเขียนทับ

$แมว~/.ssh/id_rsa.pub| sshremote_username@server_ip_address
'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

หากนี่เป็นครั้งแรกที่คุณเชื่อมต่อกับโฮสต์ใหม่ ระบบของคุณจะแสดงบางสิ่งเช่น:

เพียงพิมพ์ใช่แล้วกดปุ่ม Enter จากนั้นป้อนรหัสผ่านไปยังบัญชีการเข้าถึงของผู้ใช้ จากนั้นคีย์สาธารณะจะถูกคัดลอกไปยังเซิร์ฟเวอร์ Ubuntu ของคุณ

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

$mkdir -NS~/.ssh

ตอนนี้คุณเพียงแค่ต้องเพิ่มรหัส:

$โยนออกpublic_key_string>>~/.ssh/ได้รับอนุญาต_keys

$chmod -NS ไป= ~/.ssh

ตรวจสอบให้แน่ใจว่าคุณกำลังใช้ ~SSH/ USER ไดเรกทอรีและ ไม่ ไดเรกทอรีราก:

$chown -NSยูนิส: ยูนิส ~/.ssh

ขั้นตอนที่ 3: ตรวจสอบสิทธิ์คีย์ SSH

ขั้นตอนต่อไปคือการตรวจสอบสิทธิ์คีย์ SSH บนเซิร์ฟเวอร์ Ubuntu ขั้นแรก เข้าสู่ระบบโฮสต์ระยะไกลของคุณ:

$sshชื่อผู้ใช้@remote_host

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

ขั้นตอนที่ 4: ปิดใช้งานการตรวจสอบรหัสผ่าน

ด้วยการรับรองความถูกต้องของคีย์ SSH คุณไม่จำเป็นต้องมีระบบตรวจสอบรหัสผ่านอีกต่อไป

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

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

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

$sudogedit/ฯลฯ/ssh/sshd_config

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

$/ฯลฯ/ssh/sshd_config
. . .
รหัสรับรองความถูกต้องของรหัสผ่าน
. . .

หากต้องการดูการเปลี่ยนแปลงเหล่านี้ คุณจะต้องเริ่มบริการ sshd ใหม่โดยใช้คำสั่งต่อไปนี้:

$sudosystemctl รีสตาร์ทssh

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

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

บทสรุป

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