วิธีเพิ่มคีย์ SSH บน Ubuntu 20.04

วิธีเพิ่มคีย์ SSH บน Ubuntu 20.04

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

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

กลไกการตรวจสอบสิทธิ์มีสองประเภทที่ใช้ในการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล การตรวจสอบโดยใช้รหัสผ่าน (มีแนวโน้มที่จะถูกโจมตีแบบ Brute-force) และการรับรองความถูกต้องตาม SSH Keys (ซึ่งมีความปลอดภัยมาก)

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

ในคู่มือนี้ เราจะมาดูวิธีตั้งค่า SSH Keys บนเซิร์ฟเวอร์ Ubuntu 20.04 LTS

ดูว่าคุณมีคีย์ SSH อยู่ในคอมพิวเตอร์หรือไม่

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

ls -l ~/.ssh/id_*.pub

หากคำสั่งข้างต้นส่งคืนno such file or directoryหรือ แสดงno matches foundว่าไม่มีคู่คีย์ SSH

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

การสร้างคีย์ SSH บนคอมพิวเตอร์ไคลเอนต์

ในการสร้างคู่คีย์ SSH ใหม่บนคอมพิวเตอร์ของคุณ ให้พิมพ์คำสั่งดังที่แสดงด้านล่าง

ssh-keygen

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

ssh-keygen -b 4096

หากคำสั่งทำงานสำเร็จ ข้อความต่อไปนี้จะแจ้งบนหน้าจอของคุณ

สร้างคู่คีย์ rsa สาธารณะ / ส่วนตัว
ป้อนไฟล์ที่จะบันทึกคีย์ (/home/harshit/.ssh/id_rsa):

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

ป้อนไฟล์ที่จะบันทึกคีย์ (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx

เปลี่ยนที่ท้ายชื่อไฟล์ที่มีชื่อที่เหมาะสมตามที่แสดงด้านล่างและกดxxxEnter

ป้อนไฟล์ที่จะบันทึกคีย์ (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1

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

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

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

เมื่อกระบวนการทั้งหมดเสร็จสมบูรณ์ ข้อความต่อไปนี้จะปรากฏขึ้นบนหน้าจอของคุณ

วิธีเพิ่มคีย์ SSH บน Ubuntu 20.04

คีย์ SSH ได้ถูกสร้างขึ้นบนระบบของคุณแล้ว ตอนนี้ได้เวลาคัดลอกกุญแจสาธารณะบนเซิร์ฟเวอร์ระยะไกลแล้ว

การคัดลอกกุญแจสาธารณะไปยังเซิร์ฟเวอร์ Ubuntu ระยะไกล

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

การใช้ยูทิลิตี้ ssh-copy-id

ssh-copy-idยูทิลิตี้เป็นค่าเริ่มต้นที่มีอยู่บนเครื่องอูบุนตูซึ่งสำเนากุญแจสาธารณะจากอุปกรณ์ของคุณไปยังไดเรกทอรีที่เหมาะสมของเครื่อง Ubuntu ระยะไกลของคุณ

ในการคัดลอกคีย์ ssh สาธารณะ เพียงพิมพ์คำสั่งในเทอร์มินัลของคุณ ดังที่แสดงด้านล่าง

ssh-copy-id [email protected]

แทนที่usernameand hostnameในคำสั่งด้านบนด้วยชื่อผู้ใช้และชื่อโฮสต์ของเซิร์ฟเวอร์ของคุณ

ข้อความต่อไปนี้จะปรากฏบนสถานีของคุณถ้าคุณกำลังเชื่อมต่อกับโฮสต์ของคุณเป็นครั้งแรกพิมพ์และกดyesEnter

ไม่สามารถสร้างความถูกต้องของโฮสต์ '172.105.XX.XX (172.105.XX.XX)'
ลายนิ้วมือของคีย์ ECDSA คือ xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx
คุณแน่ใจหรือว่าต้องการเชื่อมต่อต่อ (ใช่/ไม่ใช่) ใช่

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

/usr/bin/ssh-copy-id: INFO: กำลังพยายามเข้าสู่ระบบด้วยคีย์ใหม่ เพื่อกรองข้อมูลที่ติดตั้งไว้แล้ว
/usr/bin/ssh-copy-id: INFO: ยังคงต้องติดตั้ง 1 คีย์ - หากคุณได้รับแจ้งในตอนนี้ ให้ติดตั้งคีย์ใหม่
[ป้องกันอีเมล]รหัสผ่าน:

เมื่อเพิ่มคีย์แล้ว ข้อความต่อไปนี้จะปรากฏบนเทอร์มินัลของคุณเป็นเอาต์พุต

จำนวนคีย์ที่เพิ่ม: 1
ตอนนี้ให้ลองลงชื่อเข้าใช้เครื่องด้วย: "ssh ' [email protected] '" และตรวจสอบให้แน่ใจว่าได้เพิ่มเฉพาะคีย์ที่คุณต้องการเท่านั้น

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

ssh-copy-id -i id_rsa_xxx.pub [email protected]

💡 เคล็ดลับ

อย่าลืมใส่ .pub ต่อท้ายชื่อไฟล์ขณะพิมพ์เทอร์มินัล

การคัดลอกกุญแจสาธารณะโดยวิธีการวางท่อ

พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลหากไม่มีssh-copy-idยูทิลิตี้ คำสั่งนี้อาจดูยาวกว่าเล็กน้อย แต่ใช้งานได้อย่างเหมาะสม

cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

แทนที่remote_usernameและserver_ip_addressด้วยชื่อผู้ใช้และที่อยู่ IP ของคุณ

หากคุณมีคีย์ SSH หลายอันในคอมพิวเตอร์ของคุณ ให้แทนที่id_rsa.pubด้วยไฟล์คีย์ SSH สาธารณะที่คุณเลือก ตัวอย่างเช่นid_rsa_client_1.pub.

Enterพิมพ์รหัสผ่านผู้ใช้ระยะไกลเมื่อได้รับแจ้งและตี

[email protected]'s password:

เมื่อคุณพิมพ์รหัสผ่านid_rsa.pubไฟล์จะถูกคัดลอกไปยังauthorized_keysไฟล์ของเซิร์ฟเวอร์ระยะไกล

การคัดลอกกุญแจสาธารณะ

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

เปิดid_rsa.pubไฟล์โดยใช้catคำสั่งในเทอร์มินัล คุณยังสามารถเปิดได้จากโปรแกรมแก้ไขข้อความ โดยมีจุดประสงค์เพื่อคัดลอกเนื้อหาของไฟล์เท่านั้น

cat ~/.ssh/id_rsa.pub

เนื้อหาของไฟล์จะมีลักษณะดังที่แสดงด้านล่าง

SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib VvJyZ + + dGO8zRNT64 SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z csqdvIDQfMuH [email protected] _PC

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

echo above_string >> ~/.ssh/authorized_keys

การกำหนดค่าคีย์ SSH หลายรายการ (ไม่บังคับ)

ขั้นตอนนี้มีไว้สำหรับผู้ที่มีการตั้งค่าคีย์ SSH หลายรายการบนคอมพิวเตอร์ไคลเอนต์ของตน ข้ามส่วนนี้หากคุณมีการตั้งค่าคีย์ SSH เพียงรายการเดียว

ในการจัดการคีย์ SSH หลายรายการ ตอนนี้เราจะสร้างconfigไฟล์ภายใน.sshไดเร็กทอรีโดยใช้คำสั่งที่แสดงด้านล่าง

cd ~/.ssh
vim config

พิมพ์iเพื่อเข้าสู่โหมดคำสั่งและพิมพ์รายละเอียดของหลายโฮสต์ ดังตัวอย่างต่อไปนี้

Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1

Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2

ในทำนองเดียวกัน พิมพ์รายละเอียดของเซิร์ฟเวอร์ระยะไกลอื่นๆ และคีย์ของเซิร์ฟเวอร์เหล่านั้น เมื่อกระบวนการเสร็จสิ้น กดEscและ:wqเพื่อบันทึกและออก

ตอนนี้ กระบวนการที่ตามมาจะเหมือนกันสำหรับทั้งการมีคีย์ SSH เดียวหรือหลายรายการบนคอมพิวเตอร์ไคลเอนต์

เข้าสู่ระบบเซิร์ฟเวอร์ระยะไกลของคุณโดยใช้คีย์ SSH

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

ssh [email protected]_ip_address

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

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

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

ปิดการใช้งานกลไกการเข้าสู่ระบบโดยใช้รหัสผ่าน

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

เข้าสู่ระบบเซิร์ฟเวอร์ Ubuntu ระยะไกลของคุณและพิมพ์คำสั่งที่แสดงด้านล่าง

sudo vim /etc/ssh/sshd_config
  • กดEsc, /และประเภท 'PasswordAuthentication enterและตี 
  • ตอนนี้กดiและเปลี่ยนค่าของ 'PasswordAuthentication yes' เป็น 'PasswordAuthentication no'
  • กดEscและทำซ้ำขั้นตอนข้างต้นเพื่อค้นหา 'ChallengeResponseAuthentication', 'UsePAM' และเปลี่ยนค่าnoเป็นด้วย
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

เมื่อค่าทั้งหมดถูกตั้งค่าให้noกดEscพิมพ์และการตี:wqenter

หากต้องการเปิดใช้งานการเปลี่ยนแปลงทั้งหมดให้เริ่มsshบริการใหม่โดยใช้คำสั่งด้านล่าง

sudo systemctl restart ssh

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

เมื่อกระบวนการตรวจสอบเสร็จสิ้น ให้ปิดเซสชันที่ทำงานอยู่ทั้งหมด

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


วิธีคัดลอกและวางบน Chromebook

วิธีคัดลอกและวางบน Chromebook

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

วิธีทดสอบการพิมพ์บน Linux ด้วย tt

วิธีทดสอบการพิมพ์บน Linux ด้วย tt

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

Wi-Fi ไม่ทำงานบน Ubuntu? นี่คือวิธีแก้ไข

Wi-Fi ไม่ทำงานบน Ubuntu? นี่คือวิธีแก้ไข

อูบุนตูเป็นที่นิยมในด้านความทนทานและข้อผิดพลาดค่อนข้างน้อย แต่ก็ไม่มีปัญหาอะไรแน่นอน หนึ่งในปัญหาดังกล่าวคือไดรเวอร์ Wi-Fi คุณอาจเปิดระบบของคุณเพียงเพื่อจะพบว่า Wi-Fi ของคุณไม่ทำงาน

วิธีสร้างและสแกนรหัส QR บน Chromebook

วิธีสร้างและสแกนรหัส QR บน Chromebook

รหัสตอบกลับด่วนหรือรหัส QR สั้น ๆ เป็นบาร์โค้ดขั้นสูงที่มีข้อมูลมากกว่าบาร์โค้ดแบบเดิม รหัสเหล่านี้เป็นแบบสองมิติ ช่วยให้คุณสแกนในแนวตั้งหรือแนวนอนได้

วิธีการติดตั้งและลบแพ็คเกจใน Arch Linux

วิธีการติดตั้งและลบแพ็คเกจใน Arch Linux

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

7 สุดยอดแอพ Ubuntu Dynamic Wallpaper

7 สุดยอดแอพ Ubuntu Dynamic Wallpaper

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

10+ ส่วนขยาย GNOME ที่ดีที่สุดสำหรับ Ubuntu 20.04

10+ ส่วนขยาย GNOME ที่ดีที่สุดสำหรับ Ubuntu 20.04

ส่วนขยายยอดนิยมมากมาย เช่น Gno-Menu, Extended Gestures ใช้งานไม่ได้กับ Ubuntu 20.04 ดังนั้นนี่คือรายการส่วนขยาย GNOME ที่ใช้งานได้ดีที่สุด

5 แอพถ่ายโอนไฟล์ Wi-Fi ที่ดีที่สุดจาก Ubuntu ไปยัง Android

5 แอพถ่ายโอนไฟล์ Wi-Fi ที่ดีที่สุดจาก Ubuntu ไปยัง Android

กลไกอย่างเช่น FTP, การถ่ายโอนไฟล์แบบเพียร์ทูเพียร์, การถ่ายโอน Wi-Fi จะช่วยคุณประหยัดเวลาหากคุณแชร์ไฟล์ระหว่าง Android และ Ubuntu บ่อยๆ

15 ธีมที่ดีที่สุดสำหรับ Ubuntu 20.04 ในปี 2020

15 ธีมที่ดีที่สุดสำหรับ Ubuntu 20.04 ในปี 2020

ธีมที่อัปเดตใหม่จำนวนมากพร้อมที่จะติดตั้งบนเดสก์ท็อป GNOME ใหม่ของ Ubuntu 20.04 แล้ว นี่คือรายการธีม Ubuntu ที่ดีที่สุดในปี 2020

ความแตกต่างระหว่าง Root Superuser บน Ubuntu

ความแตกต่างระหว่าง Root Superuser บน Ubuntu

สงสัยว่าความแตกต่างระหว่าง Root Superuser บน Ubuntu คืออะไร? เรามีคุณครอบคลุมที่นี่