Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีตั้งค่าและใช้งาน SSH ใน Linux

วิธีตั้งค่าและใช้งาน SSH ใน Linux

หากคุณใช้ Linux มาสักพัก คุณคงเคยได้ยินเครื่องมือที่เรียกว่า SSH Secure Shell (SSH) คือโปรโตคอลเครือข่ายสำหรับสร้างการเชื่อมต่อที่ปลอดภัยระหว่าง client และ remote server ออกแบบมาเพื่อให้ผู้ใช้ล็อกอินเข้าสู่คอมพิวเตอร์ระยะไกลได้อย่างปลอดภัยผ่านเครือข่าย บทความนี้จะแนะนำวิธีตั้งค่าและคัดลอก SSH keys ไปยังเซิร์ฟเวอร์อย่างง่ายดาย

ติดตั้ง SSH

ขั้นแรก ติดตั้ง SSH server หาและติดตั้งแพ็กเกจ openssh-server ใน Software Center หรือ package manager หรือหากอยู่บนเซิร์ฟเวอร์ (หรือชอบใช้เทอร์มินัล) เปิดเทอร์มินัลและพิมพ์:

# Ubuntu/Debian
sudo apt install openssh-server
# Fedora/CentOS/REHL
sudo dnf install openssh-server
วิธีตั้งค่าและใช้งาน SSH ใน Linux

เปิดใช้งาน SSH ใน Linux

หลังติดตั้ง OpenSSH server แล้ว ต้อง start และ enable systemd unit ด้วยคำสั่ง:

sudo systemctl enable --now ssh
วิธีตั้งค่าและใช้งาน SSH ใน Linux

สร้าง SSH Keys

หลังติดตั้ง openssh server แล้ว สร้าง SSH key pairs ตรวจสอบก่อนว่าไม่มี key pair เดิมอยู่ เพราะกระบวนการนี้จะเขียนทับเดิม

ตรวจสอบ key pair เดิมด้วยคำสั่ง:

ls -la ~/.ssh

หากมี key pair เดิม จะแสดงไฟล์ id_rsa และ id_rsa.pub

วิธีตั้งค่าและใช้งาน SSH ใน Linux

หลังยืนยันว่าไม่มี key pair เดิม สร้าง key ใหม่ได้ หากมีเดิม ให้ backup เก็บไว้ก่อน

สร้าง key ใหม่ด้วยคำสั่ง:

ssh-keygen -t rsa -b 4096

คำสั่งนี้เรียกใช้ ssh-keygen เพื่อสร้าง SSH key pair แบบ interactive ใช้ -t ระบุประเภท key (RSA) และ -b ระบุขนาดบิต (4096 bits)

วิธีตั้งค่าและใช้งาน SSH ใน Linux

ควรใช้ตำแหน่งเริ่มต้นในการเก็บ SSH keys เพื่อไม่ต้องพิมพ์พาธเมื่อเชื่อมต่อ

หากไม่ต้องการเข้ารหัส key ด้วย passphrase กด Enter เพื่อข้าม

คัดลอก Key ไปยัง Remote Server

หลังสร้าง SSH key pair ใหม่แล้ว ต้องอัปโหลดไปยังเครื่องระยะไกลที่ต้องการจัดการ

วิธีที่มีประสิทธิภาพที่สุดคือใช้คำสั่ง ssh-copy-id:

ssh-copy-id remote_user@remote_IP

หากใช้ keyfile ที่มีชื่อไฟล์แยกต่างหาก ใช้คำสั่งระบุพาธ:

ssh-copy-id -i ~/.ssh/id_rsa remote_user@remote_IP

หากล็อกอินเครื่องระยะไกลครั้งแรก ต้องยอมรับ fingerprint แล้วใส่รหัสผ่าน SSH ของ remote user

หลังยืนยันตัวตนแล้ว ssh-copy-id จะนำเนื้อหา id_rsa.pub ไปต่อท้ายไฟล์ ~/.ssh/authorized_keys บนเครื่องระยะไกลและปิดการเชื่อมต่อ

วิธีตั้งค่าและใช้งาน SSH ใน Linux

ล็อกอินเข้าสู่ Remote Machine

หลังทำขั้นตอนทั้งหมดสำเร็จ คุณสามารถล็อกอินเข้าสู่ remote server โดยไม่ต้องใส่รหัสผ่าน

ทดสอบด้วยคำสั่ง:

ssh remote_user@remote_ip

หากไม่ได้ตั้ง passphrase สำหรับ key จะล็อกอินอัตโนมัติ

คำถามที่พบบ่อย

1. SSH ปลอดภัยไหม?

SSH เป็นเครื่องมือความปลอดภัยที่ทรงพลัง แต่ปลอดภัยแค่ไหนก็ขึ้นอยู่กับไฟล์การตั้งค่า (configuration file) SSH server ที่ไม่ได้ตั้งค่า/ตั้งค่าผิดอาจเปราะบางต่อแฮกเกอร์และการเข้าถึงจากบุคคลที่สาม ต้อง secure SSH configuration ทันทีหลังติดตั้ง

2. SSH authorized_keys อยู่ที่ไหน?

ไฟล์ authorized_keys เก็บ public key ของแต่ละผู้ใช้ และระบุว่าใครได้ล็อกอินเข้าเซิร์ฟเวอร์ ใน Linux มักอยู่ในโฟลเดอร์ .ssh ใน home directory ของผู้ใช้

3. แก้ไขปัญหา ssh-copy-id permission denied ยังไง?

ปัญหานี้เกิดเมื่อมี public key ตั้งค่าไว้บน remote server แล้ว และปิด password authentication แก้ไขโดย: ล็อกอินเข้าเซิร์ฟเวอร์ เปิด password authentication ใน /etc/ssh/sshd_config รัน ssh-copy-id อีกครั้ง หลังคัดลอก key ใหม่เสร็จ ให้ปิด password authentication อีกครั้ง

สรุป

ตอนนี้คุณตั้งค่าและใช้งาน SSH แล้ว ขั้นตอนต่อไปควร secure SSH configuration หรือหากใช้ Windows เรียนรู้วิธีสร้าง SSH key pair ใน Windows