मैं हर दिन एसएसएच के माध्यम से मैक ओएस एक्स लॉयन का उपयोग करता हूं और दूरस्थ मेजबान लॉगिन करता हूं। इस तथ्य के बावजूद कि मैं दूरस्थ प्रमाणीकरण के लिए SSH कुंजी जोड़ी का उपयोग करता हूं और मुझे प्रत्येक होस्ट के लॉगिन वाक्यांश को मोटर करने की आवश्यकता नहीं है, यह अभी भी बहुत कष्टप्रद है कि टर्मिनल मेरी SSH निजी कुंजी तक पहुंचने के लिए पासफ़्रेज़ के लिए पूछता है।
सुरक्षा कारणों से, मुझे लगता है, SSH निजी कुंजी तक पहुँचने के लिए पासफ़्रेज़ की आवश्यकता है। क्या ऐसा कोई तरीका है जो टर्मिनल को वाक्यांश के लिए पूछने के लिए शुरू में केवल एक बार ठीक करता है, फिर इसे याद करता है, और बाद में एसएसएच सत्रों में मेरी निजी कुंजी का उपयोग करके स्वचालित रूप से?
एक स्क्रिप्ट है, keychain
जो गेंटू लिनक्स पर ठीक काम करती है। लेकिन मैंने मैक ओएस एक्स लायन पर इसका कभी पता नहीं लगाया। इतना ही नहीं, इस तरह के रूप इतने सारे डराना शर्तों, देखते हैं ssh-agent
, ssh-add
। उन SSH टूलकिट के बारे में विभिन्न सामग्रियों को पढ़ने और कुछ निराश प्रयोगों को करने के बाद, मैं और अधिक भ्रमित हो गया।
इसलिए, मैं StackExchange पर आया, निम्नलिखित प्रश्नों के बारे में कुछ सलाह की तलाश में।
- क्या हैं
ssh-agent
,ssh-add
,keychain
,Keychain Access.app
और कैसे वे एक दूसरे के साथ इंटरेक्ट करती है? - मैं लॉगिन करते समय अपनी SSH निजी कुंजी के लिए पासफ़्रेज़ कैसे दर्ज कर सकता हूं, और बाद में SSH सत्र के निर्माण में इसका स्वतंत्र रूप से उपयोग कर सकता हूं?
- त्रुटि ... क्या गलत है
Keychain Access.app
? यह SSH वाक्यांश को स्टोर नहीं करता है, जैसा उसने पहले किया था।
मैंने सूचीबद्ध किया है कि मैंने यहां क्या किया है। उम्मीद है कि मेरे द्वारा याद किए गए चरणों के बारे में कोई सुराग नहीं है।
चरण 1. मेरे मैक पर एक SSH कुंजी जोड़ी बनाएँ।
$ ssh-keygen -t rsa -C "me@email.com"
# Set a passphrase for accessing the private key.
चरण 2. दूरस्थ होस्ट के लिए मेरी SSH सार्वजनिक कुंजी की प्रतिलिपि बनाएँ। एक उदाहरण लेने के लिए, मैं स्थानीयहोस्ट, मैक की कुंजी कॉपी करता हूं।
$ ssh-copy-id USER@localhost
# Enter the login password for USER at localhost, not my SSH passphrase
चरण 3. फिर SSH कुंजी जोड़ी प्रमाणीकरण के माध्यम से दूरस्थ होस्ट (यहां स्थानीय होस्ट) से कनेक्ट करने का प्रयास करें।
$ ssh USER@locahost
Enter passphrase for key '/Users/YOUR_ACCOUNT/.ssh/id_rsa':
# Enter my SSH passphrase, not the login password.
चरण 4. दूरस्थ होस्ट से लॉगआउट करें और इसे फिर से कनेक्ट करने का प्रयास करें। लानत है, टर्मिनल एसएसएच वाक्यांश के लिए फिर से पूछता है।
एक अक्सर पूछा जाने वाला प्रश्न यह है कि "क्या ssh- एजेंट आपके मैक पर अच्छा काम करता है?"। सच कहूं, तो मुझे नहीं पता कि इन चीजों पर क्या चल रहा है। यहाँ कुछ चल परिणाम दिखाते हैं।
$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(EMPTY)
$ ssh-add -l
Could not open a connection to your authentication agent.
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-Z54zXukQiP/agent.26769; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26770; export SSH_AGENT_PID;
echo Agent pid 26770;
$ ssh-add -l
Could not open a connection to your authentication agent.
$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(STILL EMPTY)
$ ssh-agent # Oh no, anther ssh-agent with different PID
SSH_AUTH_SOCK=/tmp/ssh-cx0B4FUX8B/agent.26898; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26899; export SSH_AGENT_PID;
echo Agent pid 26899;
$ ps -e | grep -i ssh
26769 ?? 0:00.03 ssh-agent
26899 ?? 0:00.02 ssh-agent
किसी भी प्रतिक्रिया का स्वागत किया है। धन्यवाद!