
एक SSH Agent जो Bitwarden Secrets Manager में संग्रहीत SSH कुंजियाँ प्रदान करता है
एक SSH एजेंट जो Bitwarden Secret Manager में सीक्रेट के रूप में संग्रहीत SSH कुंजियाँ प्रदान करता है।
SSH प्रमाणीकरण और Git कमिट हस्ताक्षर का समर्थन करता है।

यह SSH Agent Protocol को एक Unix domain socket सर्वर के रूप में लागू करता है, जो आपके SSH क्लाइंट्स और Bitwarden Secrets Manager के बीच एक सुरक्षित सेतु के रूप में कार्य करता है।
इसमें निम्नलिखित विशेषताएँ हैं:
/tmp/vc-$(whoami)-ssh-agent.sock पर सुनता हैssh-agent-lib क्रेट का उपयोग करके अनुरोधों को संभालता है, बिना निजी कुंजियों को कभी डिस्क पर उजागर किए0600 (केवल स्वामी) तक सीमित हैं, कुंजियाँ केवल प्रक्रिया मेमोरी में रहती हैं, और Bitwarden APIs को एक स्कोप्ड मशीन टोकन का उपयोग करके कॉल किया जाता है, जिसे आप ग्रैन्युलर सीक्रेट एक्सेस के साथ कॉन्फ़िगर कर सकते हैं।अंदर से, यह async I/O के लिए Tokio के साथ बनाया गया है, क्रिप्टोग्राफ़िक संचालन के लिए ssh-key क्रेट का उपयोग करता है, और OpenSSH प्रारूप में Ed25519 और RSA दोनों कुंजियों का समर्थन करता है।
यह मेरी आवश्यकता से जन्मा था। Bitwarden GUI क्लाइंट में Bitwarden SSH Agent सुविधा काम की है, लेकिन यदि आप केवल अपना devbox CLI चला रहे हैं तो क्या उपयोग करें? गिट कमिट पर हस्ताक्षर करने के लिए अपनी SSH कुंजी को CI/CD पाइपलाइन में सुरक्षित रूप से कैसे लाएँ? यदि आपको बिना कोई निजी कुंजी कॉपी किए किसी अस्थायी कंटेनर या VM से SSH कनेक्शन खोलना हो तो क्या करें? कीचेन में संग्रहीत और लॉगिन सत्रों से जुड़े पासफ़्रेज़ से निपटने से कैसे बचें?
इसलिए मैंने SSH कुंजियाँ प्राप्त करने और उन्हें बिना उनके निजी हिस्से को उजागर किए उपलब्ध कराने के लिए एक छोटा CLI टूल लिखा।
और अपने पूरे Bitwarden वॉल्ट को पर्यावरण में लाने से बचने के लिए, यह Bitwarden Secrets Manager का उपयोग करता है, ताकि आप चुन सकें कि कौन सी मशीन किस सीक्रेट तक पहुँच सकती है और ग्रैन्युलर टोकन अनुमतियाँ सेट कर सकें।
-----BEGIN OPENSSH PRIVATE KEY----- और -----END OPENSSH PRIVATE KEY----- स्ट्रिंग्स सहित सहेजा जाना आवश्यक है।नीचे दिए गए तरीकों में से किसी एक का उपयोग करके।
poof का उपयोग करके:
poof install pirafrank/vault-conductor
curl -fsSL https://raw.githubusercontent.com/pirafrank/vault-conductor/main/install.sh | sh
brew tap pirafrank/tap
brew install vault-conductor
या नवीनतम स्थिर रिलीज़ को मैन्युअली डाउनलोड करके $PATH में रखें।
cargo install --locked --git https://github.com/pirafrank/poof --tag VERSION
आपको निम्नलिखित प्रदान करना होगा:
BWS_ACCESS_TOKEN, वह मशीन टोकन जो आपने ऊपर सेटअप किया है। पर्यावरण चर का नाम Bitwarden द्वारा bws CLI टूल के समान हैBW_SECRET_IDS, सीक्रेट्स के UUID की कॉमा-सेपरेटेड सूची जहाँ प्रत्येक निजी कुंजी संग्रहीत है। आप BWS वेब ऐप में प्रत्येक सीक्रेट का UUID पढ़ सकते हैं (सीक्रेट नाम के नीचे देखें)।BW_SERVER_ENDPOINT (वैकल्पिक), कस्टम Bitwarden सर्वर एंडपॉइंट (केवल होस्ट, प्रोटोकॉल के बिना)। यदि प्रदान नहीं किया गया है, तो डिफ़ॉल्ट bitwarden.com होता है। मान्य उदाहरण हैं bitwarden.eu (क्लाउड) और myvault.example.com, 192.168.1.100, vault.internal (self-hosted)।आप उन्हें ऊपर दिए गए पर्यावरण चर के रूप में (CI और DevOps सेटअप के लिए अच्छा) या कॉन्फ़िग फ़ाइल के माध्यम से पास कर सकते हैं:
# download the example config file at the default path, then customize to your needs
mkdir ~/.config/vault-conductor
curl -sSL https://github.com/pirafrank/vault-conductor/raw/refs/heads/main/config.yaml.example > ~/.config/vault-conductor/config.yaml
chmod 0600 ~/.config/vault-conductor/config.yaml
# set SSH Agent env var to vault-conductor socket
export SSH_AUTH_SOCK="/tmp/vc-$(whoami)-ssh-agent.sock"
# Start in foreground
# (recommended for first time users to verify config is ok)
vault-conductor start --fg
# Start the agent in background
vault-conductor start
# Stop the background agent
vault-conductor stop
start कमांड कस्टम कॉन्फ़िगरेशन पथ प्रदान करने के लिए --config विकल्प का भी समर्थन करता है। पर्यावरण चर हमेशा कॉन्फ़िग फ़ाइल पर प्राथमिकता लेते हैं।
कभी-कभी आपको किसी अजीब स्थिति को डीबग करने और अधिक से अधिक लॉग की आवश्यकता हो सकती है। फोरग्राउंड में चलाने और विस्तृत sysout लॉग प्राप्त करने के लिए निम्नलिखित निष्पादित करें:
vault-conductor start --fg -vv
आप इसे उपयोगकर्ता स्थान में Systemd सेवा के रूप में इंस्टॉल कर सकते हैं। यहाँ और पढ़ें।
docs निर्देशिका देखें, जहाँ कोड कैसे काम करता है और कैसे व्यवस्थित है, इसके चित्र मिलेंगे। RSA कुंजियों का उपयोग करने या एजेंट को फॉरवर्ड करने से पहले सुरक्षा नीति देखें।
vault, /voːlt/ - एक भूमिगत कमरा, विशेष रूप से कीमती सामान रखने के लिए
conductor, /kənˈdʌk·tər/ - एक निर्देशक, एक चीज़ जो ऊष्मा या बिजली का संचालन करती है
विस्तार से, एक चीज़ जो आपकी मूल्यवान SSH कुंजी को Bitwarden वॉल्ट से आपके dev पर्यावरण तक पहुँचाती है।
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।
विवरण के लिए LICENSE फ़ाइल देखें।