---
title: "วิธีเก็บ Environment บน Mac Keychains แบบปลอดภัยมากขึ้น"
description: "เก็บ environment ที่เป็นความลับไว้ใน keychains ของ macos แทนการ hardcode ลง .zshrc ด้วยคำสั่ง security"
canonical_url: "https://iamthana.com/blogs/2025-11-06-environment-mac-keychains"
---

> Index of every page on this site: [llms.txt](https://iamthana.com/llms.txt)

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

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

```sh
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 ที่ต้องการเก็บได้เลย

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

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

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

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

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

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

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

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

## แก้ค่าเดิม

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

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

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

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

## ลบทิ้ง

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

## Ref

- `man security`

## Sitemap

See the full [sitemap](https://iamthana.com/sitemap.md) for all pages.
