Developer secrets کے لیے CLI
SSH keys، .env فائلیں، اور API tokens لیپ ٹاپز اور CI agents پر بکھرے ہوتے ہیں۔ OpenKey CLI (openkey) اسی zero-knowledge vault کا ٹرمینل چہرہ ہے: آف لائن پاس ورڈز بنائیں، مقامی findings ان لاک شدہ desktop ایپ میں import کریں، typed secrets manage کریں، اور اختیاری طور پر self-hosted سرور سے ciphertext کھینچیں۔
یہ مضمون guided tour ہے۔ مکمل flag-level reference CLI گائیڈ میں ہے۔
تین operating modes
| Mode | ضرورت | کردار |
|---|---|---|
| Offline | کچھ نہیں | openkey gen — بغیر نیٹ ورک اور بغیر unlock vault کے کرپٹوگرافک طور پر مفید پاس ورڈز |
| Native bridge | اس مشین پر desktop ایپ unlock | secrets، discovery import، اور secrets اور logins میں search کے لیے ڈیفالٹ راستہ |
| CLI session | login + eval $(openkey unlock) | مقامی ciphertext cache اور sync جب desktop ایپ دستیاب نہیں |
CLI bridge کو ترجیح دیتا ہے جب وہ چالو ہو۔ ورنہ OPENKEY_SESSION استعمال ہوتا ہے۔ Bridge صرف مقامی ہے اور vault locked ہونے پر کام سے انکار کرتا ہے — desktop session جیسی ہی trust boundary۔
آف لائن generation
openkey gen -l 24 --no-symbols
openkey gen -l 32 -a -c # avoid Il1O0o, copy to clipboard
openkey --json gen -l 20لمبائی اور character classes (--no-upper، --no-lower، --no-digits، --no-symbols) ٹیون کریں، یا -c سے سیدھا clipboard پر کاپی کریں۔ ایپ unlock اور سرور registration درکار نہیں۔
Device group میں discovery
openkey discover --dry-run
openkey discover -y
openkey discover -d workstation -p ~/src/acme --depth 3 --no-awsDiscovery scan کر سکتا ہے:
~/.sshکے تحت private keys (جب موجود ہوں تو sibling.pubفائلیں)- معروف اور secret جیسے process environment variables
- AWS shared credentials
- ایک یا زیادہ project roots سے
.env/.env.*trees
نتائج vault کے Secrets حصے میں device لیبل (ڈیفالٹ hostname) کے تحت گروپ ہوتے ہیں۔ پہلے import شدہ values content fingerprint سے چھوڑ دی جاتی ہیں۔ preview کے لیے --dry-run؛ بغیر prompt import کے لیے -y۔ محفوظ کرنے کے لیے پھر بھی desktop ایپ unlock (یا CLI session) چاہیے۔
روزمرہ secret operations
Secrets typed records ہیں: apiToken (ڈیفالٹ)، sshKey، envSnippet، یا other۔
openkey secret add --name "GitHub PAT" --kind apiToken --secret ghp_...
openkey secret add -n "deploy" -k sshKey -f ~/.ssh/id_ed25519 \
--public-key-file ~/.ssh/id_ed25519.pub
openkey secret list
openkey secret get "GitHub"
openkey secret copy ghp
openkey secret rm "old token" -yList اور search values mask کرتے ہیں۔ get / copy صرف جب plaintext ضروری ہو۔ Queries نام، host، یا UUID prefix سے match؛ مبہم matches اندازہ لگانے کے بجائے candidates دکھاتے ہیں۔
Secrets اور login entries اکٹھے تلاش کرنے کے لیے:
openkey search github
openkey get "GitHub"
openkey copy api.example.comاختیاری self-hosted sync
openkey config set-server https://openkey.example.com
openkey login --email [email protected]
eval $(openkey unlock)
openkey sync
eval $(openkey lock)Login Argon2id سے auth_hash نکالتا ہے، ماسٹر پاس ورڈ کبھی flag کے طور پر نہیں بھیجتا، CLI cache میں صرف لپٹی ہوئی keys اور ciphertext رکھتا ہے، اور unlock سے OPENKEY_SESSION export پرنٹ کرتا ہے (ڈیفالٹ مدت 15 منٹ؛ openkey config set-lock سے بدلیں)۔ CI کے لیے OPENKEY_PASSWORD سیٹ کر سکتے ہیں؛ ذاتی مشینوں پر interactive prompt بہتر۔
کسی بھی وقت state دیکھیں:
openkey status
openkey config showیہ پاس ورڈ مینیجر میں کیوں
Developers ٹرمینلز میں رہتے ہیں۔ CLI جو ایپ جیسے ہی خفیہ Secrets علاقے میں لکھے — اور وہی ciphertext-only sync API — workflow اور threat model aligned رکھتا ہے۔ scripts کے لیے دوسرا secrets store maintain نہیں کرنا پڑتا۔
انسٹال
cd openkey_cli
npm install && npm run build
npm link # optionalNode.js 20+ درکار۔ مکمل command reference، environment variables، config paths، اور security notes: CLI گائیڈ۔