Site icon PlusMagi's Blog By Pitt Phunsanit

SSH: login with passphrase

การ login server โดย passphrase ตอนแรกก็เข้าใจว่าเป็นอีกคำของ password แต่จริง ๆ แล้วมันกลับต่างกันในรายละเอียด ที่ passphrase ทำให้ปลอดภัยกว่า เพราะเปลี่ยน password เป็น 2 ชั้น (Two-Factor Authentication) หรือ 2fa เหมือนเหมือนตอนที่เรา login email ตอนนี้ ต้องใช้ sms ยืนยันอีกครั้งแบบ การโอนเงิน

1. หลักการ “มี” และ “รู้” (Something you Have & Know)

2. Passphrase ไม่เคยถูกส่งออกจากเครื่อง (Local Decryption)

3. ป้องกันการสุ่มเดา (Brute Force Proof)

เปรียบเทียบง่ายๆ เหมือนตู้ ATM

การสร้าง passphrase

  1. สร้าง Key ใหม่ หรือแทนที่ของเดิม และตั้ง Passphrase โดยคำสั่ง
    1. ssh-keygen -t ed25519 -f ~/.ssh/{key name} -C "{comment}"
      เช่น
      ssh-keygen -t ed25519 -f ~/.ssh/digitalocean_vps -C "root_key"
    2. จากนั้นจะมีข้อความ
      Generating public/private ed25519 key pair.
      Enter passphrase for “/Users/phunsanit/.ssh/digitalocean_vps” (empty for no passphrase):
      • ส่วนนี้ให้เราใส่ข้อความที่เหมือน password ที่เรารู้คนเดียวลงไป ทางที่ดีคือ สุ่ม มาซัก 100 ตัวอักษร อย่าลืม save ไว้ด้วย
      • ถ้า enter ไปเฉย ๆ ก็จะเหมือนไม่มี password ใน login
    3. The key’s randomart image is:
      แปลว่าสร้าง key เสร็จแล้วจะได้ 2 ไฟล์ใน ~/.ssh (ถ้าใช้ mac) คือ
      • digitalocean_vps ไฟล์นี้เก็บไว้กับตัวเอง ไม่ให้ใครเห็น
      • digitalocean_vps.pub ไฟล์นี้จะส่งไปที่ server
  2. ส่งแม่กุญแจใหม่ไปที่ Server
    1. ssh-copy-id -i ~/.ssh/{key name}.pub -p {port number} {user name}@{server ip}
      เช่น
      ssh-copy-id -i ~/.ssh/digitalocean_vps.pub -p 59019 pitt@924.172.222.5
    2. ในครั้งแรก server จะถาม password ของ user ที่ ssh-copy-id ไป ก็ให้ใส่ รหัสผ่านให้ถูกต้อง
  3. ทดสอบโดย SSH ไป
    ssh/{key name}.pub -p {port number} {user name}
    เช่น
    ssh/digitalocean_vps.pub -p 59019 pitt@924.172.222.

    เท่านี้เราก็สามารถที่จะ login เข้า server ได้อย่างสบายใจว่า ถึงใครจะเห็น passphrase เรา ก็ login ไม่ได้ ถ้าเครื่องของเค้าไม่มี SSH Key

อ่านเพิ่มเติม

Exit mobile version