Development

วิธีเก็บ Environment บน Mac Keychains แบบปลอดภัยมากขึ้น

เก็บ environment ที่เป็นความลับไว้ใน keychains ของ macos แทนการ hardcode ลง .zshrc ด้วยคำสั่ง security

โดยวิธีการนี้ค่าจะถูกนำไปเก็บเอาไว้ใน keychains ของ macos ซึ่งจะปลอดภัยกว่าการเก็บไว้ใน .zshrc, .bashrc file โดยตรง

วิธีการเก็บค่า

security add-generic-password -a "$USER" -s 'name_of_your_key' -w

name_of_your_key ตั้งเป็น key ตามที่ต้องการจะเก็บ

จากนั้น application จะมีการแสดง Prompt `password data for new item:` โดยให้ใส่ value ของ key ที่ต้องการเก็บได้เลย

วิธีการดึงค่าออกมา

security find-generic-password -a "$USER" -s 'name_of_your_key' -w

ให้ shell load ค่าให้อัตโนมัติ

หากต้องการให้ default shell ของเรา load ค่าจาก envronment ดังกล่าวออกมา สามารถนำ

export NAME_OF_YOUR_KEY=$(security find-generic-password -a "$USER" -s "name_of_your_key" -w)

ไปใส่ใน default shell เช่น ~/.zshrc, ~/.bashrc แล้ว reload ได้เลย ค่าดังกล่าวก็จะถูกดึงออกมาโดยอัตโนมัติ

วิธีการตรวจสอบว่าถูก Load เข้าไปไหม

printenv NAME_OF_YOUR_KEY
# ถ้าถูกตรงนี้จะขึ้น Value มา

แก้ค่าเดิม

อันนี้เจอบ่อยหลังใช้ไปสักพักนะ พอ key หมดอายุแล้วจะเอาค่าใหม่ใส่ทับ ยิงคำสั่งเดิมซ้ำจะโดนด่าแบบนี้

security: SecKeychainItemCreateFromContent (<default>): The specified item already exists in the keychain.

ให้ใส่ -U เพิ่มเข้าไป มันจะ update ทับให้เลยถ้ามีอยู่แล้ว

security add-generic-password -U -a "$USER" -s 'name_of_your_key' -w

ลบทิ้ง

security delete-generic-password -a "$USER" -s 'name_of_your_key'

Ref

  • man security

Related Articles

Simple Paginate
Development

Simple Paginate

โค้ดตัวอย่างการทำ pagination แบบง่าย ๆ ด้วย Express + TypeScript + Mongoose พร้อมหน้าตา response
ตั้งค่าให้สามารถเชื่อมต่อ Local Network ได้ ตอนที่เชื่อม openvpn
Development

ตั้งค่าให้สามารถเชื่อมต่อ Local Network ได้ ตอนที่เชื่อม openvpn

แก้ไขไฟล์ openvpn config หากมีการ import เข้าไปใน openvpn gui แล้วสามารถค้นหาไฟล์การตั้งค่าได้ที่
วิธีการลบ .env file ออกจาก git แบบถูกวิธี
Development

วิธีการลบ .env file ออกจาก git แบบถูกวิธี

สมมติว่าเราเผลอ commit ไฟล์ .env ที่มี API key ไปแล้ว และ push ขึ้น GitHub เราต้องรีบลบมันออกทันที เพราะข้อมูลอาจถูกนำไปใช้ได้

Copyright © 2026