Site icon PlusMagi's Blog By Pitt Phunsanit

Bitwarden: SSH Agent ให้ Private Key login แทน password

วิธีให้ Bitwarden จำ Private Key, Public Key ที่จะใช้ login เข้า server แทนที่จะส่ง password ไป ซึ่งจะปลอดภัยและง่ายกว่าการที่มา copy password ส่งไปตรง ๆ


ส่วนที่ 1: การตั้งค่า Bitwarden SSH Agent บน Mac (Client)

ทำให้ Bitwarden ทำหน้าที่เป็นตัวกลาง (Agent) ในการจัดการ Private Key

1. ติดตั้ง Bitwarden Desktop App

จำเป็นต้องติดตั้ง Bitwarden Desktop App จากเว็บ bitwarden.com/download เพื่อหลีกเลี่ยงข้อจำกัดของ macOS Sandbox

  1. ดาวน์โหลด: ดาวน์โหลดไฟล์ .dmg จากเว็บไซต์ทางการของ Bitwarden โดยตรง (หลีกเลี่ยง Mac App Store)
  2. ติดตั้ง: ลากไฟล์ Bitwarden.app ไปที่โฟลเดอร์ /Applications

2. เปิดใช้งาน SSH Agent

  1. เปิดและ ปลดล็อก Bitwarden Desktop App
  2. ไปที่ Settings…
  3. ในส่วน SSH Agent ให้ทำเครื่องหมายถูกที่ช่อง Enable SSH Agent
  4. เปลี่ยนตัวเลือก Ask for authorization when using SSH agent ตามต้องการ ( ผมใช้ Always )

3. ตั้งค่า SSH Agent Socket

  1. แก้ไขไฟล์ Shell Startup (เช่น ~/.zshrc สำหรับ zsh หรือ ~/.bash_profile สำหรับ bash)
    nano ~/.zshrc
  2. เพิ่มบรรทัดนี้ลงไปในไฟล์
    export SSH_AUTH_SOCK=~/.bitwarden-ssh-agent.sock
  3. บันทึกและโหลดการตั้งค่าใหม่
    source ~/.zshrc
  4. ทดสอบ Agent
    ssh-add -L
    ถ้ามีประมาณ
    ssh-ed
    ออกมาคือใช้ได้

ส่วนที่ 2: การตั้งค่า SSH Key ใน Bitwarden Vault

เราสามารถสร้าง Key ใหม่หรือนำเข้า Private Key ที่มีอยู่

1. สร้าง Key ใหม่

  1. ใน Bitwarden Vault ให้คลิก Add item (หรือเครื่องหมาย +)
  2. ตรง Type เลือก SSH Key
  3. กรอก Name และ Bitwarden จะสร้าง Private Key (และ Public Key) ให้โดยอัตโนมัติ
  4. คัดลอก Public Key ไว้สำหรับใช้ในขั้นตอนต่อไป

2. นำเข้า Key ที่มีอยู่

  1. สร้างรายการ Type: SSH Key ใหม่
  2. ในช่อง Private Key ให้วางในช่อง Private Key (ต้องอยู่ในรูปแบบ OpenSSH)
  3. หาก Key มี Passphrase ให้กรอกลงในช่อง Passphras

ส่วนที่ 3: การตั้งค่าบนเซิร์ฟเวอร์ (Server)

ขั้นตอนนี้คือการอนุญาตให้ Public Key ที่อยู่ใน Bitwarden ใช้ในการ Login ได้

1. เพิ่ม Public Key ไปยังเซิร์ฟเวอร์

คุณต้อง Login เข้าเซิร์ฟเวอร์ด้วยรหัสผ่าน แล้วเพิ่ม Public Key เข้าไปในไฟล์ authorized_keys

  1. Login เข้าเซิร์ฟเวอร์
    ssh {user}@{ip}
    เช่น
    ssh pitt@127.0.0.4
  2. สร้างโฟลเดอร์ .ssh (ถ้ายังไม่มี)
    mkdir -p ~/.ssh
  3. คัดลอก Public Key จาก Bitwarden แล้ววางลงในไฟล์ authorized_keys
    echo "copy Public Key จาก Bitwarden" >> ~/.ssh/authorized_keys
  4. กำหนดสิทธิ์ความปลอดภัย
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

ส่วนที่ 4: การทดสอบและการใช้งาน

  1. ออกจากเซิร์ฟเวอร์
    exit
  2. เข้าไปใหม่ เช่น
    ssh {user}@{ip}
    เช่น
    ssh pitt@127.0.0.4

ถ้าสามารถเข้าไปได้โดยไม่ต้อง key password คือทำถูกต้องแล้ว บางคำสั่งจะเห็นว่าไม่ได้ใช้ sudo เลย เพราะต้องเซ็ตสิทธิ์เป็นของ user ที่จะ ssh เข้าไปไม่ใช่ root

จริง ๆ แล้วต้นฉบับเค้าแนะนำไว้ทุก ๆ os windows ก็มี ถ้าใช้ windows อ่านจากลิงค์ข้างล่างประกอบจะเข้าใจมากขึ้น

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

Exit mobile version