พื้นฐาน Secure Shell (SSH)
เรียนรู้การเชื่อมต่อกับเครื่อง Linux ระยะไกลอย่างปลอดภัย รวมถึงการยืนยันตัวตนด้วยคีย์และการกำหนดค่าไคลเอ็นต์ SSH เบื้องต้น
พื้นฐาน Secure Shell (SSH) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
Secure Shell (SSH) คืออะไร
ยินดีต้อนรับสู่บทเรียนพื้นฐาน Secure Shell (SSH) ครับ SSH เป็นโพรโทคอลเครือข่ายที่ทรงพลัง ช่วยให้คุณเชื่อมต่อกับคอมพิวเตอร์ระยะไกลได้อย่างปลอดภัยผ่านเครือข่ายที่ไม่ปลอดภัย
ลองนึกภาพว่า SSH เป็นอุโมงค์ที่ปลอดภัยสำหรับคำสั่งและข้อมูลของคุณ SSH เป็นสิ่งจำเป็นสำหรับการจัดการเซิร์ฟเวอร์ Linux อินสแตนซ์บนคลาวด์ และแม้แต่การเข้าถึงสภาพแวดล้อมการพัฒนาของคุณเองจากระยะไกล
เหตุใดจึงใช้ SSH ความปลอดภัยต้องมาก่อน
ก่อนมี SSH การเชื่อมต่อระยะไกลมักไม่มีการเข้ารหัส ซึ่งหมายความว่าใคร ๆ ก็อาจแอบดูรหัสผ่านและข้อมูลของคุณได้ SSH แก้ปัญหานี้ด้วยการเข้ารหัสที่รัดกุม
- การรักษาความลับ: ข้อมูลของคุณได้รับการเข้ารหัสและถูกซ่อนจากผู้ที่ไม่ควรเข้าถึง
- ความถูกต้องครบถ้วน: รับรองว่าข้อมูลจะไม่ถูกแก้ไขระหว่างการส่ง
- การยืนยันตัวตน: ตรวจสอบตัวตนของทั้งไคลเอนต์และเซิร์ฟเวอร์
SSH เป็นมาตรฐานของอุตสาหกรรมสำหรับการดูแลระบบระยะไกล
SSH: รูปแบบไคลเอนต์-เซิร์ฟเวอร์
SSH ทำงานในรูปแบบไคลเอนต์-เซิร์ฟเวอร์ คุณซึ่งเป็นผู้ใช้จะเรียกใช้ ไคลเอนต์ SSH บนเครื่องภายในเครื่องของคุณ ไคลเอนต์นี้จะเชื่อมต่อกับ เซิร์ฟเวอร์ SSH (มักเรียกว่า `sshd`) ที่ทำงานอยู่บนเครื่องระยะไกล
เมื่อคุณเริ่มการเชื่อมต่อ ไคลเอนต์และเซิร์ฟเวอร์จะทำ 'การจับมือ' เพื่อสร้างช่องทางที่ปลอดภัยและเข้ารหัสก่อนแลกเปลี่ยนข้อมูล
คำสั่งเชื่อมต่อ SSH พื้นฐาน
วิธีพื้นฐานที่สุดในการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลผ่าน SSH คือใช้คำสั่ง ssh ตามด้วยชื่อผู้ใช้และโฮสต์ (ที่อยู่ IP หรือชื่อโฮสต์)
รูปแบบคือ ssh username@hostname_or_IP ตัวอย่างเช่น หากต้องการเชื่อมต่อกับเซิร์ฟเวอร์ที่ 192.168.1.100 ในฐานะผู้ใช้ coddy:
ssh coddy@192.168.1.100การเชื่อมต่อครั้งแรกและลายนิ้วมือ
ครั้งแรกที่คุณเชื่อมต่อกับเซิร์ฟเวอร์ใหม่ SSH จะขอให้คุณตรวจสอบ 'ลายนิ้วมือ' ของเซิร์ฟเวอร์ ลายนิ้วมือนี้เป็นตัวระบุเฉพาะที่ช่วยป้องกันการโจมตีแบบ 'คนกลาง'
หากเป็นไปได้ ให้ตรวจสอบลายนิ้วมือเสมอ (เช่น สอบถามผู้ดูแลเซิร์ฟเวอร์) หากตรงกัน ให้พิมพ์ yes เพื่อเพิ่มเซิร์ฟเวอร์ลงในไฟล์ ~/.ssh/known_hosts ของคุณ
พอร์ต SSH และพอร์ตที่กำหนดเอง
โดยค่าเริ่มต้น SSH จะใช้พอร์ต TCP 22 อย่างไรก็ตาม ด้วยเหตุผลด้านความปลอดภัย ผู้ดูแลเซิร์ฟเวอร์มักกำหนดค่าให้ SSH รอรับการเชื่อมต่อที่พอร์ตอื่นซึ่งไม่ใช่พอร์ตมาตรฐาน
หากเซิร์ฟเวอร์ระยะไกลใช้พอร์ตที่กำหนดเอง (เช่น พอร์ต 2222) คุณสามารถระบุพอร์ตนั้นโดยใช้ตัวเลือก -p:
ssh -p 2222 coddy@myremoteserver.comแนะนำการยืนยันตัวตนด้วยคีย์
แม้การยืนยันตัวตนด้วยรหัสผ่านจะใช้งานได้ แต่ การยืนยันตัวตนด้วยคีย์ SSH มีความปลอดภัยและสะดวกกว่ามาก วิธีนี้ใช้คีย์เข้ารหัสเป็นคู่:
- คีย์สาธารณะ: จัดเก็บไว้บนเซิร์ฟเวอร์ระยะไกล
- คีย์ส่วนตัว: จัดเก็บอย่างปลอดภัยบนเครื่องภายในเครื่องของคุณ
เมื่อคุณเชื่อมต่อ เซิร์ฟเวอร์จะส่งคำขอท้าทายไปยังไคลเอนต์ของคุณ จากนั้นไคลเอนต์จะใช้คีย์ส่วนตัวเพื่อพิสูจน์ตัวตน โดยไม่ส่งคีย์ส่วนตัวผ่านเครือข่ายเลย
สร้างคู่คีย์ SSH
คุณสามารถสร้างคู่คีย์ SSH ได้โดยใช้คำสั่ง ssh-keygen คำสั่งนี้จะขอให้คุณระบุตำแหน่งสำหรับบันทึกคีย์ (ค่าเริ่มต้นคือ ~/.ssh/id_rsa) และข้อความรหัสผ่าน (จะระบุหรือไม่ก็ได้)
ข้อความรหัสผ่านจะเพิ่มชั้นความปลอดภัยให้คีย์ส่วนตัวของคุณ ขอแนะนำเป็นอย่างยิ่ง
ssh-keygen -t rsa -b 4096คัดลอกคีย์สาธารณะของคุณ
เมื่อคุณมีคู่คีย์แล้ว คุณต้องคัดลอก คีย์สาธารณะ ไปยังเซิร์ฟเวอร์ระยะไกล วิธีที่ง่ายที่สุดคือใช้ ssh-copy-id คำสั่งนี้จะเข้าสู่ระบบเซิร์ฟเวอร์ระยะไกล (โดยใช้รหัสผ่านในครั้งแรก) และเพิ่มคีย์สาธารณะของคุณลงในไฟล์ ~/.ssh/authorized_keys
หลังจากนั้น คุณจะสามารถเชื่อมต่อโดยใช้คีย์แทนรหัสผ่านได้
ssh-copy-id coddy@myremoteserver.comตรวจสอบอย่างรวดเร็ว: พื้นฐาน SSH
ข้อความใดต่อไปนี้เกี่ยวกับ SSH เป็นจริงบ้าง
ทบทวน: พื้นฐาน Secure Shell
ในบทเรียนนี้ คุณได้เรียนรู้พื้นฐานของ Secure Shell (SSH) แล้ว
- SSH ให้การเข้าถึงระยะไกลที่ปลอดภัยและมีการเข้ารหัส
- SSH ทำงานในรูปแบบไคลเอนต์-เซิร์ฟเวอร์ โดยทั่วไปใช้พอร์ต 22
- คุณสามารถเชื่อมต่อด้วย
ssh user@host - การยืนยันตัวตนด้วยคีย์โดยใช้คู่คีย์สาธารณะ/ส่วนตัว (สร้างด้วย
ssh-keygenและคัดลอกด้วยssh-copy-id) มีความปลอดภัยสูงกว่าการใช้รหัสผ่าน
ถัดไป เราจะสำรวจคำสั่งเครือข่ายและเครื่องมือถ่ายโอนไฟล์ที่ทรงพลังยิ่งขึ้น
คำถามที่พบบ่อย
บทเรียน “พื้นฐาน Secure Shell (SSH)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐาน Secure Shell (SSH)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน Secure Shell (SSH)”
เรียนรู้การเชื่อมต่อกับเครื่อง Linux ระยะไกลอย่างปลอดภัย รวมถึงการยืนยันตัวตนด้วยคีย์และการกำหนดค่าไคลเอ็นต์ SSH เบื้องต้น คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “พื้นฐาน Secure Shell (SSH)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เครื่องมือเครือข่ายพื้นฐาน (ping, ip, netstat)
- พื้นฐาน Secure Shell (SSH)
- SCP และ Rsync สำหรับการถ่ายโอนไฟล์
- การยืนยันตัวตนด้วยคีย์ SSH และไฟล์การกำหนดค่า