วิธีเปิดใช้งาน SSH บน Ubuntu 20.04
เข้าถึงเครื่อง Ubuntu ของคุณได้อย่างปลอดภัยจากทุกที่
ตั้งค่าการเข้าสู่ระบบแบบไม่ต้องใช้รหัสผ่านที่ปลอดภัยสำหรับเซิร์ฟเวอร์ 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
เปลี่ยนที่ท้ายชื่อไฟล์ที่มีชื่อที่เหมาะสมตามที่แสดงด้านล่างและกดxxx
Enter
ป้อนไฟล์ที่จะบันทึกคีย์ (/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 ระยะไกล
วิธีที่ง่ายและรวดเร็วที่สุดในการคัดลอกกุญแจสาธารณะไปยังเซิร์ฟเวอร์ระยะไกลคือการใช้ssh-copy-id
ยูทิลิตี้ แต่ถ้ายูทิลิตี้นี้ไม่มีในเครื่องของคุณเนื่องจากเหตุผลบางประการ คุณสามารถใช้วิธีอื่นที่มีให้ในหัวข้อนี้
การใช้ยูทิลิตี้ ssh-copy-id
ssh-copy-id
ยูทิลิตี้เป็นค่าเริ่มต้นที่มีอยู่บนเครื่องอูบุนตูซึ่งสำเนากุญแจสาธารณะจากอุปกรณ์ของคุณไปยังไดเรกทอรีที่เหมาะสมของเครื่อง Ubuntu ระยะไกลของคุณ
ในการคัดลอกคีย์ ssh สาธารณะ เพียงพิมพ์คำสั่งในเทอร์มินัลของคุณ ดังที่แสดงด้านล่าง
ssh-copy-id [email protected]
แทนที่username
and hostname
ในคำสั่งด้านบนด้วยชื่อผู้ใช้และชื่อโฮสต์ของเซิร์ฟเวอร์ของคุณ
ข้อความต่อไปนี้จะปรากฏบนสถานีของคุณถ้าคุณกำลังเชื่อมต่อกับโฮสต์ของคุณเป็นครั้งแรกพิมพ์และกดyes
Enter
ไม่สามารถสร้างความถูกต้องของโฮสต์ '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
พิมพ์และการตี:wq
enter
หากต้องการเปิดใช้งานการเปลี่ยนแปลงทั้งหมดให้เริ่มssh
บริการใหม่โดยใช้คำสั่งด้านล่าง
sudo systemctl restart ssh
ตอนนี้ให้เปิดหน้าต่างเทอร์มินัลใหม่บนคอมพิวเตอร์ของคุณและตรวจสอบว่าการรับรองความถูกต้องของคีย์ SSH ของคุณทำงานอย่างถูกต้องก่อนที่จะปิดเซสชันปัจจุบัน
เมื่อกระบวนการตรวจสอบเสร็จสิ้น ให้ปิดเซสชันที่ทำงานอยู่ทั้งหมด
ตอนนี้เราได้กำหนดค่าการรับรองความถูกต้องโดยใช้คีย์ SSH บนเซิร์ฟเวอร์ Ubuntu 20.04 ของเราเรียบร้อยแล้ว ตอนนี้ไม่มีใครสามารถเข้าสู่ระบบเซิร์ฟเวอร์ของคุณโดยใช้กลไกการเข้าสู่ระบบที่ใช้รหัสผ่าน
เข้าถึงเครื่อง Ubuntu ของคุณได้อย่างปลอดภัยจากทุกที่
การรักษาความปลอดภัยออนไลน์ที่เข้มงวดกลายเป็นข้อบังคับสำหรับพวกเราหลายคน และเนื่องจากตัวดำเนินการที่เป็นอันตรายมีความชาญฉลาดมากขึ้น เครื่องมือและการป้องกันจะต้องแข็งแกร่งขึ้นเพื่อให้ทัน Secure Shell (SSH) เป็นโปรโตคอลการเข้ารหัสที่ให้คุณส่งข้อมูลได้อย่างปลอดภัยโดยจับคู่คีย์สาธารณะกับการจับคู่ส่วนตัว
สิ่งแรกที่คุณอาจสงสัยขณะเปลี่ยนไปใช้ Chromebook คือวิธีทำสิ่งพื้นฐาน ซึ่งเป็นสิ่งที่คุณมีที่หลังมือในระบบปฏิบัติการก่อนหน้าของคุณ การคัดลอกและวางเป็นฟังก์ชันพื้นฐานอย่างหนึ่งที่คุณต้องใช้ในจุดใดจุดหนึ่ง
ในยุคของเทคโนโลยีสมัยใหม่ การพิมพ์กลายเป็นกิจกรรมที่นิยมใช้กันทั่วไปในหลายๆ อาชีพ การเรียนรู้ที่จะพิมพ์เร็วขึ้นด้วยความแม่นยำสามารถช่วยให้คุณทำสิ่งต่างๆ ได้มากขึ้นในระยะเวลาเท่ากัน
อูบุนตูเป็นที่นิยมในด้านความทนทานและข้อผิดพลาดค่อนข้างน้อย แต่ก็ไม่มีปัญหาอะไรแน่นอน หนึ่งในปัญหาดังกล่าวคือไดรเวอร์ Wi-Fi คุณอาจเปิดระบบของคุณเพียงเพื่อจะพบว่า Wi-Fi ของคุณไม่ทำงาน
รหัสตอบกลับด่วนหรือรหัส QR สั้น ๆ เป็นบาร์โค้ดขั้นสูงที่มีข้อมูลมากกว่าบาร์โค้ดแบบเดิม รหัสเหล่านี้เป็นแบบสองมิติ ช่วยให้คุณสแกนในแนวตั้งหรือแนวนอนได้
ต้องการติดตั้งแพ็คเกจบน Arch Linux แต่ไม่รู้จะทำอย่างไร? ผู้คนจำนวนมากประสบปัญหานี้เมื่อย้ายจากการแจกแจงแบบเดเบียนไปยัง Arch เป็นครั้งแรก อย่างไรก็ตาม คุณสามารถจัดการแพ็คเกจบนระบบที่ใช้ Arch ของคุณได้อย่างง่ายดายโดยใช้ตัวจัดการแพ็คเกจ
แม้ว่าคุณจะสามารถใช้แอพเพื่อสไลด์โชว์วอลเปเปอร์ดั้งเดิมของ Ubuntu ได้ ต่อไปนี้คือแอพบางตัวสำหรับดาวน์โหลดและตั้งค่าวอลเปเปอร์แบบไดนามิก
ส่วนขยายยอดนิยมมากมาย เช่น Gno-Menu, Extended Gestures ใช้งานไม่ได้กับ Ubuntu 20.04 ดังนั้นนี่คือรายการส่วนขยาย GNOME ที่ใช้งานได้ดีที่สุด
กลไกอย่างเช่น FTP, การถ่ายโอนไฟล์แบบเพียร์ทูเพียร์, การถ่ายโอน Wi-Fi จะช่วยคุณประหยัดเวลาหากคุณแชร์ไฟล์ระหว่าง Android และ Ubuntu บ่อยๆ
ธีมที่อัปเดตใหม่จำนวนมากพร้อมที่จะติดตั้งบนเดสก์ท็อป GNOME ใหม่ของ Ubuntu 20.04 แล้ว นี่คือรายการธีม Ubuntu ที่ดีที่สุดในปี 2020
สงสัยว่าความแตกต่างระหว่าง Root Superuser บน Ubuntu คืออะไร? เรามีคุณครอบคลุมที่นี่