วิธีให้ 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
- ดาวน์โหลด: ดาวน์โหลดไฟล์
.dmgจากเว็บไซต์ทางการของ Bitwarden โดยตรง (หลีกเลี่ยง Mac App Store) - ติดตั้ง: ลากไฟล์
Bitwarden.appไปที่โฟลเดอร์/Applications
2. เปิดใช้งาน SSH Agent
- เปิดและ ปลดล็อก Bitwarden Desktop App
- ไปที่ Settings…
- ในส่วน SSH Agent ให้ทำเครื่องหมายถูกที่ช่อง Enable SSH Agent
- เปลี่ยนตัวเลือก Ask for authorization when using SSH agent ตามต้องการ ( ผมใช้ Always )
3. ตั้งค่า SSH Agent Socket
- แก้ไขไฟล์ Shell Startup (เช่น
~/.zshrcสำหรับ zsh หรือ~/.bash_profileสำหรับ bash)nano ~/.zshrc - เพิ่มบรรทัดนี้ลงไปในไฟล์
export SSH_AUTH_SOCK=~/.bitwarden-ssh-agent.sock - บันทึกและโหลดการตั้งค่าใหม่
source ~/.zshrc - ทดสอบ Agent
ssh-add -L
ถ้ามีประมาณssh-ed
ออกมาคือใช้ได้
ส่วนที่ 2: การตั้งค่า SSH Key ใน Bitwarden Vault
เราสามารถสร้าง Key ใหม่หรือนำเข้า Private Key ที่มีอยู่
1. สร้าง Key ใหม่
- ใน Bitwarden Vault ให้คลิก Add item (หรือเครื่องหมาย +)
- ตรง Type เลือก SSH Key
- กรอก Name และ Bitwarden จะสร้าง Private Key (และ Public Key) ให้โดยอัตโนมัติ
- คัดลอก Public Key ไว้สำหรับใช้ในขั้นตอนต่อไป
2. นำเข้า Key ที่มีอยู่
- สร้างรายการ Type: SSH Key ใหม่
- ในช่อง Private Key ให้วางในช่อง Private Key (ต้องอยู่ในรูปแบบ OpenSSH)
- หาก Key มี Passphrase ให้กรอกลงในช่อง Passphras
ส่วนที่ 3: การตั้งค่าบนเซิร์ฟเวอร์ (Server)
ขั้นตอนนี้คือการอนุญาตให้ Public Key ที่อยู่ใน Bitwarden ใช้ในการ Login ได้
1. เพิ่ม Public Key ไปยังเซิร์ฟเวอร์
คุณต้อง Login เข้าเซิร์ฟเวอร์ด้วยรหัสผ่าน แล้วเพิ่ม Public Key เข้าไปในไฟล์ authorized_keys
- Login เข้าเซิร์ฟเวอร์
ssh {user}@{ip}
เช่นssh pitt@127.0.0.4 - สร้างโฟลเดอร์
.ssh(ถ้ายังไม่มี)mkdir -p ~/.ssh - คัดลอก Public Key จาก Bitwarden แล้ววางลงในไฟล์
authorized_keysecho "copy Public Key จาก Bitwarden" >> ~/.ssh/authorized_keys - กำหนดสิทธิ์ความปลอดภัย
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ส่วนที่ 4: การทดสอบและการใช้งาน
- ออกจากเซิร์ฟเวอร์
exit - เข้าไปใหม่ เช่น
ssh {user}@{ip}
เช่นssh pitt@127.0.0.4
ถ้าสามารถเข้าไปได้โดยไม่ต้อง key password คือทำถูกต้องแล้ว บางคำสั่งจะเห็นว่าไม่ได้ใช้ sudo เลย เพราะต้องเซ็ตสิทธิ์เป็นของ user ที่จะ ssh เข้าไปไม่ใช่ root
จริง ๆ แล้วต้นฉบับเค้าแนะนำไว้ทุก ๆ os windows ก็มี ถ้าใช้ windows อ่านจากลิงค์ข้างล่างประกอบจะเข้าใจมากขึ้น
อ่านเพิ่มเติม
About the author