Table of Contents

कमांड-लाइन एजेंट को उपयोगी एक्सेस की आवश्यकता होती है, हर क्रेडेंशियल की कॉपी की नहीं। यह गाइड 1Password CLI, 1Password SSH Agent, Bitbucket Git एक्सेस, और Model Context Protocol (MCP) के लिए एक सीमित डिज़ाइन प्रस्तुत करती है। पहला वर्कफ्लो सिंथेटिक नाम, रीड-ओनली एक्शन, और SSH बाउंड्री पर मानव स्वीकृति का उपयोग करता है।

मुख्य भेद सरल है। इंटरैक्टिव SSH 1Password SSH Agent के माध्यम से सहमति का उपयोग करता है। अनटेंडेड ऑटोमेशन को एक अलग पहचान, संकीर्ण एक्सेस, और एक अलग की लाइफसाइकिल की आवश्यकता होती है। MCP कनेक्शन को किसी भी वर्कफ्लो को चलाने की अनुमति के रूप में न मानें।

मुख्य बातें

  • प्राइवेट-की सुरक्षा: 1Password SSH Agent SSH प्रमाणीकरण करता है, जबकि प्राइवेट की 1Password ऐप के अंदर ही रहती हैं।
  • पब्लिक-की प्रबंधन: Bitbucket या रिमोट अकाउंट केवल एक पब्लिक की प्रकाशित करें। प्राइवेट आधा हिस्सा एक SSH Key आइटम में रखें।
  • इंटरैक्टिव सहमति: SSH Agent की का उपयोग करने से पहले एक व्यक्ति क्लाइंट या टर्मिनल सेशन को स्वीकार करता है।
  • अनटेंडेड अलगाव: एक शेड्यूल्ड जॉब को एक समर्पित सर्विस अकाउंट और एक संकीर्ण वॉल्ट स्कोप की आवश्यकता होती है। इंटरैक्टिव SSH Agent स्वीकृति इस आवश्यकता को पूरा नहीं करती।
  • MCP सीमाएँ: MCP एक एजेंट को टूल्स और संसाधनों से जोड़ता है। क्लाइंट, सर्वर, ऑपरेटिंग सिस्टम, और 1Password नीति अभी भी एक्सेस को नियंत्रित करती हैं।

शुरू करने से पहले

पूर्व-अवस्थाएँ: 1Password 8 और 1Password CLI 2.20.0 या बाद की संस्करण इंस्टॉल करें। एक समर्थित 1Password अकाउंट के माध्यम से साइन इन करें। एक OpenSSH क्लाइंट का उपयोग करें। एक टेस्ट Bitbucket रिपॉज़िटरी या कोई अन्य नॉन-प्रोडक्शन टार्गेट बनाएं। रोलबैक के लिए एक दूसरा एडमिनिस्ट्रेटिव पथ उपलब्ध रखें।

समय: डिज़ाइन समीक्षा और सिंथेटिक वॉकथ्रू के लिए 30 से 45 मिनट।

कठिनाई: मध्यम। आपको बुनियादी Git, SSH, शेल, और एक्सेस-कंट्रोल ज्ञान की आवश्यकता है।

यह गाइड डिज़ाइन और योजना को कवर करती है। लिंक की गई Bitbucket आर्टिकल Bitbucket-विशिष्ट एक्सेस सीमाओं को कवर करती है। यह गाइड एक लाइव अकाउंट का परीक्षण नहीं करती, एक वास्तविक की नहीं बनाती, किसी वास्तविक होस्ट से कनेक्ट नहीं करती, या एक वास्तविक MCP सर्वर का पंजीकरण नहीं करती। नीचे दिए गए सभी पहचानकर्ता सिंथेटिक हैं। प्लेसहोल्डर केवल अपने अपने नियंत्रित वातावरण के अंदर बदलें।

संस्करण स्थिति: इस वर्कफ्लो के लिए 1Password 8 और 1Password CLI 2.20.0 या बाद की संस्करण का उपयोग करें। 1Password CLI 1 अवमूल्यित है । 1Password 7 शुरुआती 2027 में समाप्त हो जाएगा । SSH-की जनरेशन, इम्पोर्ट, और शेयरिंग के लिए 1Password 8 की आवश्यकता होती है। टेस्टिंग से पहले इंस्टॉल किए गए Git, OpenSSH, MCP होस्ट, और MCP सर्वर संस्करणों की पुष्टि करें। नीचे दिए गए उदाहरण अभी भी अनटेस्ट हैं।

vault एक सुरक्षित 1Password संग्रह है जिसमें आइटम होते हैं। OpenSSH वह SSH क्लाइंट और सर्वर सॉफ्टवेयर है जिसे कई ऑपरेटिंग सिस्टम द्वारा उपयोग किया जाता है। MCP, या Model Context Protocol, एजेंट को अनुमोदित टूल्स या संसाधनों से जोड़ता है।

निजी कुंजियों को अपठित क्यों रखें

एक SSH कुंजी जोड़े में एक सार्वजनिक कुंजी (public key) और एक निजी कुंजी (private key) होती है। एक रिमोट Git सेवा या सर्वर सार्वजनिक कुंजी को संग्रहीत करता है। प्रमाणीकरण के दौरान क्लाइंट निजी कुंजी के प्रभुत्व को प्रमाणित करता है। निजी कुंजी को रिमोट सेवा तक पहुँचने की आवश्यकता नहीं होती है।

1Password SSH Agent इस मॉडल को विस्तारित करता है। इसकी दस्तावेज़ीकरण में कहा गया है कि SSH और Git क्लाइंट एजेंट के माध्यम से प्रमाणीकरण करते हैं, जबकि निजी कुंजी 1Password ऐप में रहती है। क्लाइंट को एक साइनिंग परिणाम प्राप्त होता है, न कि एक निजी-कुंजी फ़ाइल।

यह सीमा कई एक्सपोज़र पथों को कम करती है:

  • सोर्स कंट्रोल: एक निजी कुंजी रिपॉज़िटरी या पुल रिक्वेस्ट में प्रवेश नहीं करती है।
  • शेल हिस्ट्री: एक निजी-कुंजी मान किसी कमांड आर्गुमेंट में दिखाई नहीं देता।
  • अस्थायी फ़ाइलें: एक स्क्रिप्ट को ~/.ssh/ में निजी कुंजी लिखने की आवश्यकता नहीं होती।
  • एजेंट संदर्भ: एक बड़ी भाषा मॉडल (LLM) को एक SSH ऑपरेशन के अनुरोध के लिए निजी-कुंजी टेक्स्ट की आवश्यकता नहीं होती।
  • अकस्मात पुनर्प्रयोग: एक कॉपी की गई कुंजी कार्य समाप्त होने के बाद पुराने वर्कस्पेस में नहीं रहती।

यह सीमा SSH को हानिरहित नहीं बनाती है। एजेंट सॉकेट का उपयोग करने की अनुमति रखने वाला प्रक्रिया अनुमोदित कुंजी के रूप में कार्रवाइयाँ कर सकती है। होस्ट-कुंजी सत्यापन, रिमोट खाता सीमाएँ, रिपॉज़िटरी अनुमतियाँ, कमांड नीति, और प्रक्रिया पृथक्करण अभी भी महत्वपूर्ण हैं।

निजी-कुंजी सीमा कुंजी सामग्री की रक्षा करती है। यह सीमा रिमोट कमांड को अनुमोदित नहीं करती या यह प्रमाणित नहीं करती कि लक्षित होस्ट विश्वसनीय है।

इंटरैक्टिव SSH सहमति

एजेंट कुंजियों के लिए एक समर्पित vault कॉन्फ़िगर करें। SSH Agent कॉन्फ़िगरेशन फ़ाइल का उपयोग करके सबसे छोटी कुंजी सेट और होस्ट-विशिष्ट कुंजी का चयन करें। ऑटोमेशन प्रक्रिया के लिए हर बिल्ट-इन vault से हर योग्य कुंजी को एक्सपोज़ न करें।

1Password SSH Agent सुरक्षा मॉडल अनुमोदन को एक कुंजी और एक अनुरोध करती प्रक्रिया से जोड़ता है। प्रॉम्प्ट प्रक्रिया और कुंजी की पहचान करता है। फिर व्यक्ति कॉन्फ़िगर किए गए प्रमाणीकरण विधि के माध्यम से अनुरोध को अनुमोदित करता है।

1Password कई अनुमोदन दायरों (scopes) का दस्तावेज़ीकरण करता है। प्रति-कुंजी और प्रति-एप्लिकेशन अनुमोदन डिफ़ॉल्ट है। टर्मिनल-सत्र दायरा (scope) अनुमोदन को एक टैब या सत्र तक सीमित करता है। प्रति-अनुरोध अनुमोदन हर अनुरोध के लिए फिर से पूछता है। एक सभी-प्रक्रिया अनुमोदन विकल्प मौजूद है, लेकिन यह विकल्प वर्तमान ऑपरेटिंग-सिस्टम उपयोगकर्ता के तहत हर प्रक्रिया को सत्र के लिए एक्सेस देता है।

कार्य के लिए उपयुक्त सबसे संकीर्ण अनुमोदन दायरा का उपयोग करें। सिस्टम-प्रशासन एजेंट को एक समर्पित टर्मिनल या सैंडबॉक्स में चलना चाहिए। यदि एकल टर्मिनल सत्र पर्याप्त है, तो प्रत्येक प्रक्रिया को अनुमोदित न करें।

अनुमोदन सत्र एक स्थायी अधिकार नहीं है। 1Password उस अवधि के लिए अधिकारизेशन को दर्ज करता है जो कॉन्फ़िगर की गई है, या जब तक ऐप लॉक या बंद नहीं हो जाता। जब ऐप लॉक होता है, तो एजेंट बाद के उपयोग के लिए निजी कुंजियाँ (private keys) सुरक्षित नहीं रखता। जब 1Password बंद होता है, तो समर्थित सेटिंग सक्षम होने पर SSH Agent प्रक्रिया पृष्ठभूमि में जारी रहती है, लेकिन एक नई साइनिंग अनुरोध के लिए 1Password को अनलॉक होना आवश्यक है।

1Password SSH सेटअप गाइड सामान्य प्रवाह दिखाती है: एक कुंजी का निर्माण या आयात करना, सार्वजनिक कुंजी प्रकाशित करना, SSH Agent को सक्षम करना, SSH क्लाइंट को कॉन्फ़िगर करना, एक SSH या Git कमांड चलाया जाना, और अनुरोध का अनुमोदन। सटीक सोकेट पथ ऑपरेटिंग सिस्टम के अनुसार भिन्न होता है। किसी अन्य मशीन से पथ कॉपी करने के बजाय वर्तमान प्लेटफ़ॉर्म निर्देशों का उपयोग करें।

नई साइनिंग अनुरोध सफल होने से पहले 1Password ऐप को अनलॉक होना आवश्यक है। ऐप बंद होने के दौरान एजेंट प्रक्रिया पृष्ठभूमि में जारी रह सकती है। एक लॉक किया गया ऐप साइनिंग के लिए निजी-कुंजी सामग्री (private-key material) जारी नहीं करता।

सार्वजनिक कुंजियाँ और Bitbucket

1Password कुंजी-प्रबंधन गाइड SSH Key आइटम, कुंजी निर्माण, कुंजी आयात, सार्वजनिक कुंजियाँ, फिंगरप्रिंट, और निजी कुंजियों का दस्तावेज़ीकरण करती है। CLI उदाहरण op item create --category ssh का उपयोग करके एक SSH Key आइटम बनाने के लिए है। इस उदाहरण के लिए 1Password CLI डिफ़ॉल्ट रूप से Ed25519 कुंजी का निर्माण करता है और अपने आउटपुट में निजी कुंजी को छिपा देता है (redacts)।

Bitbucket Cloud सामान्य Git और OpenSSH कमांड-लाइन वर्कफ़्लो का उपयोग करता है। इसका कमांड-लाइन गाइड स्थानीय रिपॉज़िटरी से Git ऑपरेशनों का वर्णन करता है। इसका SSH कॉन्फ़िगरेशन गाइड SSH रिमोट रूपों और समर्थित सार्वजनिक-कुंजी प्रारूपों की सूची देता है।

Bitbucket को सार्वजनिक-कुंजी उपभोक्ता (public-key consumer) के रूप में मानें। अनुमोदित Bitbucket खाते या रिपॉज़िटरी सेटिंग के माध्यम से सार्वजनिक कुंजी या फिंगरप्रिंट पंजीकृत करें। निजी कुंजी को 1Password में रखें। Git क्लाइंट SSH Agent से साइन करने के लिए अनुरोध करता है। क्लाइंट निजी-कुंजी फ़ाइल को पढ़ता नहीं है।

Bitbucket एक्सेस-कुंजी दायरे, पंजीकरण पथ, और केवल-पठन (read-only) Git परीक्षण के लिए, Bitbucket Cloud SSH Keys and Git CLI: Read-Only Access for AI Agents देखें।

Bitbucket दस्तावेज़ीकरण इसे Git CLI वर्कफ़्लो कहता है। यह लेख एक अलग Bitbucket MCP सर्वर या Bitbucket CLI नामक उत्पाद का मान नहीं लेता है। Bitbucket-विशिष्ट CLI को अपनी अपनी वर्तमान दस्तावेज़ीकरण और अपनी अपनी अनुमति समीक्षा की आवश्यकता होती है।

एजेंट और MCP सीमा

नए सर्वर की समीक्षा करते समय वर्तमान MCP विनिर्देश का उपयोग करें।

निम्नलिखित पृष्ठभूमि अनुच्छेद में 2025-06-18 विनिर्देश URL एक ऐतिहासिक संस्करण है। नई समीक्षाओं के लिए 2026-07-28 विनिर्देश का उपयोग करें।

MCP एक LLM एप्लिकेशन, एक क्लाइंट कनेक्टर, और एक सर्वर के बीच कनेक्शन को मानकीकृत करता है। एक सर्वर टूल्स, संसाधन, या प्रॉम्प्ट्स प्रदान करता है। विनिर्देश यह भी कहता है कि होस्ट्स को डेटा को प्रकट करने या टूल्स को आह्वान करने से पहले उपयोगकर्ता की सहमति प्राप्त करनी चाहिए।

MCP स्वयं अनुमतियां प्रदान नहीं करता है। एक MCP टूल अभी भी अपने सर्वर प्रक्रिया, ऑपरेटिंग सिस्टम उपयोगकर्ता, नेटवर्क पथ, क्लाउड खाते, और विन्यस्त क्रेडेंशियल्स की अनुमतियों के भीतर चलता है। एक टूल का विवरण एक अधिकृतनीति नहीं है।

1Password Security for AI दस्तावेज़ीकरण एक Environments MCP Server और सुरक्षित MCP विन्यास पैटर्न का वर्णन करता है। उसी पृष्ठ पर MCP विन्यास मानों के 1Password से रनटाइम लोडिंग का वर्णन किया गया है। ये पृष्ठ एक सामान्य 1Password SSH-की MCP उत्पाद या हर एजेंट क्लाइंट के लिए एक सार्वभौमिक SSH वर्कफ्लो की परिभाषा नहीं करते हैं।

MCP को एक संकीर्ण नियंत्रण सतह के रूप में उपयोग करें:

  • पठन टूल्स: सेवा स्थिति, रिपॉज़िटरी मेटाडेटा, या स्वीकृत लॉग की जांच करें।
  • योजना टूल्स: कमांड को निष्पादित किए बिना एक कमांड या परिवर्तन रिकॉर्ड तैयार करें।
  • स्वीकृति टूल्स: एक रिमोट राइट से पहले एक मानव निर्णय का अनुरोध करें।
  • लेखन टूल्स: तब तक अक्षम रखें जब तक कि लक्ष्य, कमांड, दायरा, और रोलबैक योजना स्पष्ट न हों।

एजेंट को संदर्भ, मेटाडेटा, और परिचालन परिणाम प्राप्त होने चाहिए। एजेंट को प्राइवेट-की टेक्स्ट, वॉल्ट-वर्ध आइटम डंप, या एक असीमित शेल नहीं मिलना चाहिए।

एक सुरक्षित प्रारंभिक नीति

एजेंट को सक्षम करने से पहले एक लिखित नीति से शुरू करें। नीति को MCP विन्यास के निकट रखें, लेकिन फ़ाइल में क्रेडेंशियल्स न रखें।

agent_policy:
  purpose: "Read-only repository and system inspection"
  identities:
    interactive_ssh: "1Password SSH Agent with per-terminal consent"
    unattended_jobs: "Dedicated service account with one narrow vault"
  allowed:
    - "Read repository metadata through Git"
    - "Read approved service status and logs"
    - "Run one synthetic SSH connectivity check"
  approval_required:
    - "Any remote write"
    - "Any package, firewall, clock, or service change"
    - "Any new host-key acceptance"
    - "Any private-key export"
  denied:
    - "Read or print private-key fields"
    - "List every vault or every item"
    - "Write tokens or secrets to shell profiles"
    - "Run arbitrary commands from tool output"
  rollback:
    - "Revoke the service account"
    - "Remove the public key from the target"
    - "Disable the MCP server entry"
    - "Lock 1Password and end the agent session"

यह नीति एक उदाहरण है, 1Password विन्यास प्रारूप नहीं है। वास्तविक नीति को उस कंट्रोल प्लेन में संग्रहीत करें जिसे आपके एजेंट क्लाइंट द्वारा उपयोग किया जाता है। प्रत्येक टूल को सक्षम करने से पहले नीति के विरुद्ध उसकी समीक्षा करें।

सेवा खाते और सीक्रेट संदर्भ

एक सेवा खाता एक स्वचालित प्रक्रिया को उसकी अपनी पहचान प्रदान करता है। 1Password CLI स्क्रिप्ट गाइड चयनित वॉल्ट्स तक न्यूनतम-अधिकार पहुंच के लिए सेवा खातों की सिफारिश करता है। यह एक अनटेंडेड जॉब को एक व्यक्ति के SSO, MFA, वॉल्ट इन्वेंटरी, और दैनिक खाते से अलग करता है।

एक गुप्त संदर्भ (secret reference) किसी मान का नाम रखता है बिना उस मान को स्रोत में रखे। 1Password CLI संदर्भ op://vault/item/field रूप का उपयोग करता है। संदर्भ तभी सुरक्षित रूप से संग्रहीत किया जा सकता है जब आस-पास की प्रक्रिया (process) को अभी भी संकीर्ण पहुंच हो। संदर्भ नीति (policy) को बायपास नहीं करता है।

जब एक कमांड को एक मान की आवश्यकता हो, तब op read का उपयोग करें। जब किसी सहायक प्रक्रिया (child process) को चलाए जाने वाले मानों (runtime values) के नियंत्रित समूह की आवश्यकता हो, तब op run का उपयोग करें। जब अनुमोदित वॉल्ट (vault) में एक नया SSH Key आइटम मौजूद होना चाहिए, तब op item create का उपयोग करें।

रनटाइम इंजेक्शन (runtime injection) और निजी-कुंजी सुरक्षा (private-key protection) को न भ्रमित करें। एक API टोकन जो एक पर्यावरण चर (environment variable) के रूप में पास किया जाता है, वह अभी भी सहायक प्रक्रिया के लिए दृश्यमान होता है। एक निजी कुंजी जो एक पर्यावरण चर के माध्यम से पास की जाती है, वह और भी खराब होती है क्योंकि इससे प्रक्रिया निरीक्षण (process inspection), क्रैश रिपोर्ट, डिबग आउटपुट, शेल ट्रेसिंग (shell tracing), और गलती से लॉगिंग में पहुंच का विस्तार होता है।

स्रोत में संदर्भ और सबसे छोटी संभव प्रक्रिया में रनटाइम मान को प्राथमिकता दें। प्रक्रिया को अल्पकालिक रखें। शेल ट्रेसिंग को निष्क्रिय करें। पर्यावरण को प्रिंट न करें। असफल चाल के बाद अस्थायी फ़ाइलों को हटा दें।

सुरक्षित प्रारंभिक वर्कफ़्लो

नीचे दी गई अनुक्रम में सार्वजनिक-कुंजी पंजीकरण, इंटरैक्टिव SSH, MCP खोज, और अनटेंडेड डिज़ाइन को अलग किया गया है।

1. लक्ष्य की परिभाषा दें

लक्ष्य वर्ग, रिमोट खाता, निर्धारित रिपॉज़िटरी या कमांड, होस्ट-कुंजी स्रोत, अनुमोदन मालिक, और रोलबैक कार्रवाई लिखें। प्रारंभिक अभ्यास के दौरान एक संश्लेषित रिकॉर्ड (synthetic record) का उपयोग करें।

target_class: test-repository
remote_account: git
operation: read-only connectivity check
host_key_source: approved administrator record
approval_owner: named operator
rollback: remove public key and revoke test identity

अपेक्षित परिणाम, परीक्षण नहीं किया गया: रिकॉर्ड एक लक्ष्य और एक कार्रवाई की पहचान करता है। रिकॉर्ड में होस्टनेम, IP पता, टोकन, निजी कुंजी, या व्यक्तिगत डेटा शामिल नहीं है।

2. SSH Key आइटम बनाएं या चुनें

आधिकारिक 1Password SSH कुंजी गाइड CLI निर्माण पैटर्न का दस्तावेज़ीकरण करती है। नीचे दी गई कमांड एक संश्लेषित शीर्षक और नामित टेस्ट वॉल्ट का उपयोग करती है।

op item create --category ssh --ssh-generate-key=ed25519 --vault "synthetic-test-vault" --title "synthetic-agent-admin-key"

अपेक्षित आउटपुट, परीक्षण नहीं किया गया: 1Password नामित टेस्ट वॉल्ट में एक SSH Key आइटम बनाता है और टर्मिनल आउटपुट में निजी कुंजी को छिपा देता है (redacts)। कमांड 1Password की स्थिति को बदलती है। सटीक मानव-पठनीय आउटपुट CLI संस्करण और साइन-इन स्थिति पर निर्भर करता है।

टेस्ट रिकॉर्ड में लौटाए गए आइटम पहचानकर्ता (item identifier) को पकड़ें, निजी-कुंजी फ़ील्ड की प्रतिलिपि न लें। आइटम स्कीमा की पुष्टि के बाद ही बाद की फ़ील्ड-विशिष्ट पठन के लिए पहचानकर्ता या सटीक आइटम शीर्षक का उपयोग करें।

इस आउटपुट को साझा लॉग में रीडायरेक्ट न करें। जब स्थानीय प्रक्रिया सुरक्षित संरचित आउटपुट का समर्थन करती है, तब केवल आइटम पहचानकर्ता, सार्वजनिक-कुंजी फिंगरप्रिंट, और अनुमोदन रिकॉर्ड पकड़ें।

3. सार्वजनिक कुंजी का प्रबंधन करें

1Password में SSH Key आइटम खोलें और इसके Copy Public Key एक्शन का उपयोग करें। केवल तभी फ़ील्ड-विशिष्ट संदर्भ का उपयोग करें जब आप अपने खाते में पब्लिक-की फ़ील्ड लेबल की पुष्टि कर लें। पूरा आइटम डंप न करें।

PUBLIC_KEY_REF="op://synthetic-test-vault/synthetic-agent-admin-key/synthetic-public-key-field"
op read "$PUBLIC_KEY_REF"

अपेक्षित आउटपुट, परीक्षण नहीं किया गया: एक सिंथेटिक OpenSSH पब्लिक-की लाइन या पुष्टि की गई फ़ील्ड से पब्लिक-की मान। ऊपर दिया गया प्लेसहोल्डर फ़ील्ड नाम आपके आइटम की फ़ील्ड लेबल के बारे में कोई वादा नहीं है।

स्वीकृत Bitbucket खाते, Bitbucket रिपॉज़िटरी, या रिमोट खाते में पब्लिक की पंजीकृत करें। Bitbucket में संगत प्राइवेट की कभी पेस्ट न करें। Bitbucket SSH गाइड भी पहले कनेक्शन से पहले Bitbucket होस्ट की रिकॉर्ड करने की सिफारिश करता है।

Bitbucket के लिए, प्रकाशित होस्ट-की रिकॉर्ड प्राप्त करें और ~/.ssh/known_hosts में एक लाइन जोड़ने से पहले रिकॉर्ड की तुलना एक स्वतंत्र विश्वसनीय कॉपी से करें। तुलना सफल होने के बाद सख्त होस्ट चेकिंग का उपयोग करें। एजेंट चालान के दौरान बदली गई होस्ट की को स्वीकार न करें।

4. इंटरैक्टिव SSH सक्षम करें

डेस्कटॉप ऐप में 1Password SSH Agent चालू करें। प्लेटफ़ॉर्म-विशिष्ट IdentityAgent या SSH_AUTH_SOCK मान के साथ OpenSSH को कॉन्फ़िगर करें, जो आधिकारिक सेटअप गाइड से है। पहली जांच को एक रिपॉज़िटरी या एक गैर-प्रोडक्शन खाते तक सीमित रखें।

macOS या Linux पर, प्लेटफ़ॉर्म सेटअप गाइड से सॉकेट सेट करें और ssh-add -l चलाएं। Windows पर, समर्थित नेम्ड-पाइप कॉन्फ़िगरेशन का उपयोग करें और 1Password SSH Agent इंटरफ़ेस या एक दस्तावेज़ित Windows SSH टेस्ट के माध्यम से उपलब्ध की की पुष्टि करें। ssh-add -l को एक क्रॉस-प्लेटफ़ॉर्म सत्यापन कमांड के रूप में प्रस्तुत न करें।

केवल macOS या Linux पर:

ssh-add -l
git ls-remote "<repository-ssh-url>" HEAD

अपेक्षित आउटपुट, परीक्षण नहीं किया गया: macOS या Linux पर, ssh-add -l सक्रिय एजेंट से फिंगरप्रिंट सूचीबद्ध करता है। Windows पर, दस्तावेज़ित नेम्ड-पाइप टेस्ट या 1Password SSH Agent इंटरफ़ेस का उपयोग करें। सफल Git रीड एक कमीट संदर्भ लौटाता है। ऊपर दिया गया रिपॉज़िटरी प्लेसहोल्डर एक नियंत्रित जांच में प्रतिस्थापन की आवश्यकता रखता है।

कमांड एक रिपॉज़िटरी प्लेसहोल्डर का उपयोग करती है। प्लेसहोल्डर को केवल एक नियंत्रित जांच में ही प्रतिस्थापित करें। जिस लक्ष्य या प्रक्रिया की आपकी अपेक्षा नहीं थी, उसके लिए प्रॉम्प्ट को स्वीकृत न करें।

5. SSH पथ काम करने के बाद MCP जोड़ें

पहले MCP के बिना SSH क्लाइंट और लक्ष्य की पुष्टि करें। फिर एक रीड-ओनली MCP सर्वर या लोकल कनेक्टर जोड़ें। एजेंट को read_status या prepare_command जैसे टूल दें। एक सामान्य शेल टूल से शुरू न करें।

MCP कॉन्फ़िगरेशन को क्लाइंट के समर्थित एनवायरनमेंट मैकेनिज्म के माध्यम से रनटाइम मानों का संदर्भ देना चाहिए। 1Password AI सुरक्षा गाइड 1Password से लोड किए गए एनवायरनमेंट वेरिएबल्स के साथ प्लेनटेक्स्ट MCP कॉन्फ़िगरेशन टोकन को बदलने का वर्णन करता है। कॉन्फ़िगरेशन में संदर्भ या वेरिएबल नाम रखें। एजेंट ट्रांसक्रिप्ट से रिज़ॉल्व्ड मान को बाहर रखें।

यह खंड एक डिज़ाइन का वर्णन करता है, न कि एक परीक्षण की गई MCP कॉन्फ़िगरेशन का। यहाँ कोई क्लाइंट, सर्वर, ट्रांसपोर्ट, वर्ज़न, या फिक्स्चर पिन नहीं किया गया है। किसी एजेंट को प्रोडक्शन सिस्टम से जोड़ने से पहले, एक अलग टेस्ट प्रोफ़ाइल में एक रीड-ओनली सर्वर को सत्यापित करें।

6. परिणाम का रिकॉर्ड करें

लक्षित क्लास, टूल का नाम, अनुमोदन निर्णय, पब्लिक-की फिंगरप्रिंट, कमांड परिणाम, और क्लीनअप परिणाम का रिकॉर्ड करें। सीक्रेट मानों को छोड़ दें। प्रत्येक आउटपुट को देखा गया (observed) या अपेक्षित (expected) के रूप में चिह्नित करें।

अपेक्षित परिणाम, परीक्षण नहीं किया गया: एजेंट स्थिति पढ़ता है, एक सीमित कमांड का प्रस्ताव देता है, SSH अनुरोध के लिए स्पष्ट अनुमोदन प्राप्त करता है, रीड-ओनली ऑपरेशन को पूरा करता है, और प्राइवेट-की टेक्स्ट के बिना एक रिकॉर्ड उत्पन्न करता है।

सिंथेटिक कमांड अनुक्रम

निम्नलिखित अनुक्रम वास्तविक इंफ्रास्ट्रक्चर का उपयोग किए बिना क्रम दिखाता है। ये कमांड केवल उदाहरण हैं। इनका उपयोग लेख की तैयारी के दौरान नहीं किया गया था।

op --version
op item create --category ssh --ssh-generate-key=ed25519 --vault "synthetic-test-vault" --title "synthetic-agent-admin-key"
op read "op://synthetic-test-vault/synthetic-agent-admin-key/synthetic-public-key-field"
# macOS or Linux only
ssh-add -l
git ls-remote "<repository-ssh-url>" HEAD

अपेक्षित आउटपुट, परीक्षण नहीं किया गया:

2.x.y
SSH Key item created. Private key: redacted
ssh-ed25519 AAAA<synthetic-public-key> synthetic-key-label
256 SHA256:<synthetic-fingerprint> synthetic-agent-admin-key (ED25519)
<synthetic-commit-id>        HEAD

आउटपुट ब्लॉक उदाहरण के तौर पर है। यह ब्लॉक 1Password खाते, Bitbucket, Git प्रोवाइडर, या रिमोट होस्ट के विरुद्ध किसी चालू प्रक्रिया का प्रतिनिधित्व नहीं करता है। एक प्रोडक्शन रिकॉर्ड में केवल अनुमोदित मेटाडेटा और सफलता या विफलता की स्थिति संग्रहीत करनी चाहिए।

इंटरैक्टिव बनाम अनटेंडेड एक्सेस

एक्सेस मोडपहचानप्राइवेट-की पथअनुमोदन मॉडल
इंटरैक्टिव SSH1Password SSH एजेंट के माध्यम से मानव खाताप्राइवेट की 1Password ऐप में रहती हैमानव प्रक्रिया, टर्मिनल सत्र, या अनुरोध का अनुमोदन करता है
समयबद्ध रीडसमर्पित सेवा खाताop run संकीर्ण रनटाइम मान प्रदान करता हैजॉब नीति और सेवा-खाते की सीमा
समयबद्ध SSHसमर्पित ऑटोमेशन पहचानकी निर्यात एक अंतिम उपाय के रूप में डिज़ाइन बना रहता हैजॉब आइसोलेशन, कम जीवनकाल, होस्ट प्रतिबंध, और रोटेशन
एजेंट राइटमानव या कार्य-विशिष्ट पहचानअनुमोदित इंटीग्रेशन पर निर्भर करता हैप्रत्येक परिभाषित परिवर्तन से पहले मानव अनुमोदन

इंटरैक्टिव SSH एजेंट प्रॉम्प्ट के चारों ओर वर्कफ्लो शेड्यूल न करें। एक अलग ऑटोमेशन डिज़ाइन का उपयोग करें या चरण को मानव-संचालित रखें।

अनटेंडेड जॉब्स के लिए, एक सर्विस अकाउंट बनाएं जिसमें एक वॉल्ट या कुछ ही आइटमों तक पहुंच हो। जॉब को एक ही उद्देश्य दें। एक समर्पित रिपॉज़िटरी या सर्वर अकाउंट का उपयोग करें। होस्ट-की सत्यापन जोड़ें। निष्पादन टाइमआउट सेट करें। सीक्रेट्स के बिना एक्शन मेटाडेटा का लॉग रखें। टेस्ट के बाद पहचान को रोटेट या रिवोक करें।

यदि किसी अनटेंडेड जॉब को वास्तव में SSH प्राइवेट की की आवश्यकता है, तो एक समर्पित ऑटोमेशन की का उपयोग करें जिसमें एक संकीर्ण रिमोट अकाउंट और एक दस्तावेज़ित समाप्ति तिथि हो। op read के साथ प्राइवेट की को फेच करना प्रक्रिया सीमा के पार की मटेरियल को निर्यात करता है। इस डिज़ाइन का ब्लास्ट रेडियस 1Password SSH Agent की तुलना में अधिक है। जब लक्ष्य इसे समर्थित करता हो, तो प्लेटफॉर्म पहचान, डिप्लॉय सर्विस, या अन्य वर्कलोड पहचान का उपयोग करना पसंद करें।

प्लेनटेक्स्ट एनवायरनमेंट वेरिएबल्स जोखिम क्यों बढ़ाते हैं

एनवायरनमेंट वेरिएबल्स सीक्रेट्स को स्रोत फ़ाइलों से बाहर रखते हैं, लेकिन वे सीक्रेट्स को अदृश्य नहीं बनाते हैं। एक बच्चे प्रक्रिया (child process) अपना एनवायरनमेंट पढ़ती है। प्रक्रिया निरीक्षण, क्रैश हैंडलर्स, डीबग आउटपुट, शेल ट्रेसिंग, और कॉपी की गई कमांड रिकॉर्ड्स मानों को प्रकट कर सकते हैं।

1Password op run को एक सबप्रॉसेस में रेफरेंस लोड करने के लिए एक रनटाइम विधि के रूप में दस्तावेज़ित करता है। उन मानों के लिए op run का उपयोग करें जो प्रक्रिया को वास्तव में चाहिए। बच्चे प्रक्रिया को अल्पकालिक रखें और उसकी कमांड को सीमित करें। जब SSH Agent निर्यात की आवश्यकता को समाप्त कर देता हो, तो प्राइवेट की को SSH_PRIVATE_KEY, KEY, या किसी समान वेरिएबल के माध्यम से न पास करें।

सुरक्षित क्रम है:

  1. SSH Agent का उपयोग करें इंटरैक्टिव SSH के लिए।
  2. पब्लिक-की पंजीकरण का उपयोग करें Bitbucket या रिमोट अकाउंट के लिए।
  3. संकीर्ण अनटेंडेड बच्चे प्रक्रिया के लिए op run का उपयोग करें।
  4. एक मान के लिए op read का उपयोग करें जब बच्चे प्रक्रिया को पूर्ण एनवायरनमेंट की आवश्यकता न हो।
  5. प्राइवेट की का निर्यात केवल एक लिखित अपवाद, संकीर्ण दायरा, क्लीनअप योजना, और रोटेशन योजना के बाद करें।

निर्णय तालिका

आवश्यकताप्राथमिक पथरोकने या पुनर्निर्माण का कारण
मानव SSH के माध्यम से Git चलाता है1Password SSH Agentयदि प्रॉम्प्ट किसी अपेक्षित प्रक्रिया या कुंजी का नाम लेता है तो रोकें
एक रिपॉज़िटरी कुंजी पंजीकृत करेंसार्वजनिक कुंजी पढ़ें या ऑटोफिल करेंनिजी कुंजी को कभी भी रिपॉज़िटरी सेवा में कॉपी न करें
एजेंट सेवा स्थिति पढ़ता हैOS-स्तर की दायरा के साथ केवल-पठन MCP टूलयदि टूल एक असीमित शेल प्रकट करता है तो रोकें
एजेंट एक रिमोट परिवर्तन का प्रस्ताव देता हैयोजना टूल के बाद मानव स्वीकृतियदि लक्ष्य, कमांड, या रोलबैक स्पष्ट नहीं है तो रोकें
जॉब एक API टोकन पढ़ता हैसेवा खाता और op read या op runयदि टोकन स्रोत, लॉग, या वैश्विक प्रोफ़ाइल में प्रवेश करता है तो रोकें
जॉब को SSH पहुंच की आवश्यकता हैवर्कलोड पहचान या समर्पित ऑटोमेशन कुंजीयदि जॉब को व्यक्तिगत कुंजी या व्यापक खाते की आवश्यकता होती है तो रोकें
MCP कॉन्फ़िग को एक टोकन की आवश्यकता हैसमर्थित क्लाइंट द्वारा लोड किया गया रनटाइम संदर्भयदि एक प्लेनटेक्स्ट टोकन कॉन्फ़िग में कमीट किया जाता है तो रोकें

विफलता प्रबंधन

अपेक्षित SSH सहमति प्रॉम्प्ट: प्रॉम्प्ट को अस्वीकार करें। प्रक्रिया का नाम, टर्मिनल सत्र, कुंजी फिंगरप्रिंट, रिपॉज़िटरी लक्ष्य, और होस्ट कुंजी की जांच करें। पुनः प्रयास करने से पहले SSH क्लाइंट कॉन्फ़िगरेशन की समीक्षा करें।

कोई SSH एजेंट सॉकेट नहीं है: पुष्टि करें कि 1Password डेस्कटॉप ऐप किसी समर्थित विधि के माध्यम से इंस्टॉल किया गया है, SSH एजेंट सक्षम है, और क्लाइंट प्लेटफ़ॉर्म-विशिष्ट सॉकेट का उपयोग करता है। आधिकारिक SSH एजेंट पेज ऑपरेटिंग सिस्टम आवश्यकताओं और सॉकेट सेटअप लिंक की सूची देता है।

सार्वजनिक-कुंजी प्रमाणीकरण विफल होता है: चयनित सार्वजनिक कुंजी, रिमोट खाता, रिपॉज़िटरी अनुमति, होस्ट कुंजी, और SSH कॉन्फ़िगरेशन की जांच करें। सार्वजनिक फिंगरप्रिंट तुलना का उपयोग करें। किसी अनसंबंधित निजी कुंजी को निर्यात करके त्रुटि को हल न करें।

op read पहुंच अस्वीकार करता है: सेवा-खाता वॉल्ट दायरा, आइटम पहचानकर्ता, फ़ील्ड संदर्भ, साइन-इन स्थिति, और आइटम स्थिति की जांच करें। संदर्भ को एक अनुमोदित आइटम तक सीमित करें। प्रथम प्रतिक्रिया के रूप में वॉल्ट अनुदान को विस्तृत न करें।

op run एक मान प्रकट करता है: जॉब को रोकें। केवल न्यूनतम घटना रिकॉर्ड को सुरक्षित रखें। अपने रिटेंशन प्रक्रिया के अनुसार कॉपी किए गए लॉग और अस्थायी फ़ाइलें हटाएं। प्रभावित सीक्रेट या कुंजी को रोटेट करें। शेल ट्रेसिंग, प्रक्रिया निरीक्षण, क्रैश रिपोर्ट, और MCP ट्रांसक्रिप्ट रिटेंशन की समीक्षा करें।

MCP टूल अप्रत्याशित रूप से व्यवहार करता है: टूल आउटपुट को अविश्वसनीय डेटा के रूप में मानें। आउटपुट द्वारा सुझाए गए कमांड निष्पादित करने से पहले रुक जाएं। सर्वर स्रोत, कॉन्फ़िगरेशन, अनुमतियां और ट्रांसपोर्ट का निरीक्षण करें। MCP होस्ट को उपयोगकर्ता सहमति प्राप्त करनी होगी। स्पेसिफिकेशन सहमति और एक्सेस कंट्रोल के लिए इम्प्लीमेंटर गाइडेंस भी प्रदान करता है, लेकिन प्रोटोकॉल आपकी समीक्षा का विकल्प नहीं है।

रोलबैक और हटाना

रोलबैक फ़ाइल हटाने से नहीं, बल्कि एक्सेस हटाने से शुरू होता है।

  1. एजेंट या शेड्यूल्ड जॉब को रोकें। MCP सर्वर एंट्री को अक्षम करें या क्लाइंट को डिस्कनेक्ट करें।
  2. 1Password को लॉक करें। इंटरैक्टिव SSH ऑथरिज़ेशन सत्र समाप्त करें।
  3. पब्लिक कुंजी को हटाएं। Bitbucket, रिपॉज़िटरी या रिमोट अकाउंट से टेस्ट कुंजी को हटा दें।
  4. सर्विस अकाउंट को रिवोक करें। इसकी वॉल्ट एक्सेस को हटाएं और इसकी टोकन को अमान्य करें।
  5. टेस्ट SSH कुंजी आइटम को हटाएं इसकी पुष्टि करने के बाद कि कोई अनुमोदित वर्कफ्लो इस आइटम का उपयोग नहीं कर रहा है।
  6. अस्थायी कॉन्फ़िगरेशन को हटाएं। टेस्ट रीफरेंस, लोकल सॉकेट ओवरराइड और जनरेटेड लॉग को हटा दें।
  7. प्रमाण की समीक्षा करें। पुष्टि करें कि रोलबैक रिकॉर्ड में कोई प्राइवेट कुंजी, टोकन या एनवायरनमेंट डंप शामिल नहीं है।

एक हटाई गई लोकल फ़ाइल पब्लिक कुंजी, सर्विस अकाउंट, कैश्ड टोकन या रिमोट ऑथरिज़ेशन को रिवोक नहीं करती है। हर अनुदान को उसके स्रोत से हटाएं।

ट्राबलशूटिंग

एजेंट हर कमांड के लिए कुंजी मांगता है

चयनित ऑथरिज़ेशन स्कोप की जांच करें। प्रति-अनुरोध अनुमोदन अधिक प्रतिबंधक है। टर्मिनल या एप्लिकेशन सत्र समाप्त हो गया हो सकता है। 1Password लॉक या क्विट इवेंट के बाद भी फिर से पूछता है।

एजेंट को अपने ट्रांसक्रिप्ट में प्राइवेट कुंजी दिखाई देती है

वर्कफ्लो को रोकें और कुंजी को रोटेट करें। MCP सर्वर रिस्पॉन्स, शेल कमांड, डीबग लॉग और टूल रैपर का निरीक्षण करें। इंटरैक्टिव टास्क के लिए प्राइवेट-कुंजी रीड्स को SSH एजेंट उपयोग से बदलें। जॉब्स के लिए, व्यक्तिगत कुंजी को एक समर्पित पहचान और एक दस्तावेज़ित अपवाद से बदलें।

कुंजी सूची में बहुत सारी पहचानें शामिल हैं

1Password SSH एजेंट अपने कॉन्फ़िगर किए गए वॉल्ट्स से पात्र कुंजियां प्रकट करता है। स्कोप्ड एजेंट कॉन्फ़िगरेशन या होस्ट-विशिष्ट SSH कॉन्फ़िगरेशन का उपयोग करें। एजेंट दस्तावेज़ीकरण भी OpenSSH सर्वर की छह-कुंजी सीमा का उल्लेख करता है।

एक कमांड हाथ से काम करता है लेकिन जॉब में विफल हो जाता है

पहचान, वॉल्ट स्कोप, एनवायरनमेंट, होस्ट-कुंजी डेटा, वर्किंग डायरेक्टरी और अनुमोदन मान्यताओं की तुलना करें। एक इंटरैक्टिव 1Password सत्र में मानवीय सहमति शामिल होती है। एक शेड्यूल्ड जॉब में नहीं। जॉब को एक अलग एक्सेस मोड के रूप में डिज़ाइन करें।

MCP सर्वर कनेक्टेड है लेकिन टास्क विफल हो जाता है

कनेक्शन प्राधिकरण की पुष्टि नहीं करता है। टूल डिस्कवरी, सर्वर क्रेडेंशियल्स, क्लाइंट सहमति, ऑपरेटिंग सिस्टम अनुमतियाँ, नेटवर्क एक्सेस, और टार्गेट-साइड अनुमतियों को अलग-अलग चरणों में जाँचें। पहली जाँच केवल पढ़ने (read-only) के लिए रखें।

अगले चरण

नए अनुमोदनों के लिए वर्तमान 2026-07-28 MCP विनिर्देश का उपयोग करें। इस लेख में 2025-06-18 विनिर्देश का कोई भी लिंक ऐतिहासिक पृष्ठभूमि है।

एक सिंथेटिक रिपॉज़िटरी और एक read-only MCP टूल से शुरुआत करें। प्रत्येक अपेक्षित परिणाम को अनपरीक्षित (untested) के रूप में दर्ज करें, जब तक कि नियंत्रित पर्यावरण में प्रमाण उत्पन्न न हो। फिर एक गैर-प्रोडक्शन टार्गेट, एक नामित ऑपरेटर, एक सत्यापित होस्ट की, और एक लिखित रोलबैक रिकॉर्ड के साथ वर्कफ्लो को दोहराएँ।

वर्तमान कमांड फ्लैग्स के लिए 1Password CLI संदर्भ पढ़ें। सर्विस-अकाउंट ऑटोमेशन बनाने से पहले स्क्रिप्ट्स में सीक्रेट्स लोड करें पढ़ें। नए सर्वर से टूलों को अनुमोदित करने से पहले MCP विनिर्देश पढ़ें।

इंटरैक्टिव SSH को मानव-अनुमोदित (human-approved) रखें। अनटेंडेड एक्सेस को अलग रखें। जब भी टार्गेट एजेंट-आधारित प्रमाणीकरण का समर्थन करता है, निजी की को कभी भी पढ़ने (unread) के रूप में रखें।