डिफ़ॉल्ट रूप से, ssh फ़ाइलों id_dsa
और id_rsa
फ़ाइलों की खोज करता है। चाबियों को इस तरह नामित करने की आवश्यकता नहीं है, आप इसे mykey
केवल नाम दे सकते हैं , या इसे एक अलग निर्देशिका में भी रख सकते हैं। हालाँकि, यदि आप दोनों में से किसी एक को करते हैं, तो आपको ssh कमांड में कुंजी को स्पष्ट रूप से संदर्भित करने की आवश्यकता है:
ssh user@server -i /path/to/mykey
यदि कोई कमांड स्वीकार नहीं करता है -i
, उदाहरण sshfs
के लिए, IdentityFile
विकल्प का उपयोग करें :
sshfs -o IdentityFile=/path/to/mykey user@host:/path/on/remote /mountpoint
यह काम किस प्रकार करता है
कुंजी बनाते समय, आपको दो फाइलें मिलेंगी: id_rsa
(निजी कुंजी) और id_rsa.pub
(सार्वजनिक कुंजी)। जैसा कि उनके नाम से पता चलता है, निजी कुंजी को गुप्त रखा जाना चाहिए और सार्वजनिक कुंजी सार्वजनिक रूप से प्रकाशित की जा सकती है।
सार्वजनिक कुंजी प्रमाणीकरण एक सार्वजनिक और एक निजी कुंजी के साथ काम करता है। क्लाइंट और सर्वर दोनों की अपनी कुंजी है। openssh-server
सर्वर स्थापित करते समय सार्वजनिक और निजी कुंजी स्वचालित रूप से उत्पन्न होती हैं। क्लाइंट के लिए, आपको अपने दम पर ऐसा करना होगा।
जब आप (क्लाइंट) सर्वर से जुड़ते हैं, तो सार्वजनिक कुंजी का आदान-प्रदान होता है। आपको सर्वर एक और सर्वर आपका प्राप्त होगा। पहली बार जब आप सर्वर सार्वजनिक कुंजी प्राप्त करते हैं, तो आपको इसे स्वीकार करने के लिए कहा जाएगा। यदि यह सार्वजनिक कुंजी एक समय में बदल जाती है, तो आपको चेतावनी दी जाएगी क्योंकि संभावित MITM (बीच में आदमी) हमला हो रहा है, क्लाइंट और सर्वर के बीच यातायात को रोक रहा है।
सर्वर यह जाँचता है कि क्या आपको कनेक्ट (परिभाषित /etc/ssh/sshd_config
) करने की अनुमति है और यदि आपकी सार्वजनिक कुंजी ~/.ssh/authorized_keys
फ़ाइल में सूचीबद्ध है । सार्वजनिक कुंजी को अस्वीकार करने के संभावित कारण:
/etc/ssh/sshd_config
:
AllowUsers
या AllowGroups
निर्दिष्ट किया गया है, लेकिन आपका सर्वर उपयोगकर्ता समूहों या उपयोगकर्ता सूची में सूचीबद्ध नहीं है (डिफ़ॉल्ट रूप से परिभाषित नहीं है, उपयोगकर्ताओं या समूहों पर लॉगिंग से कोई प्रतिबंध नहीं है)।
DenyUsers
या DenyGroups
निर्दिष्ट किया गया है और आप उपयोगकर्ता या समूह सूची में हैं।
- आप रूट के रूप में लॉगिन करने का प्रयास कर रहे हैं, लेकिन (डिफ़ॉल्ट ) पर
PermitRootLogin
सेट है ।No
yes
PubkeyAuthentication
No
(डिफ़ॉल्ट yes
) पर सेट है ।
AuthorizedKeysFile
एक अलग स्थान पर सेट किया गया है, और सार्वजनिक कुंजी को उस फ़ाइल में नहीं जोड़ा जाता है (डिफ़ॉल्ट .ssh/authorized_keys
, होम डायर के सापेक्ष)
~/.ssh/authorized_keys
: आपकी सार्वजनिक कुंजी इस फ़ाइल में नहीं जोड़ी गई है (ध्यान दें कि यह फ़ाइल रूट उपयोगकर्ता के रूप में पढ़ी जाती है)
कई कुंजियों का उपयोग करना
कई कुंजियों का उपयोग करना असामान्य नहीं है। चल रहा है के बजाय ssh user@host -i /path/to/identity_file
, आप एक विन्यास फाइल का उपयोग कर सकते ~/.ssh/config
।
सामान्य सेटिंग्स आइडेंटिटीफाइल (चाबियां) और पोर्ट हैं। अगला कॉन्फ़िगरेशन "id_dsa" और "bender" की जाँच करेगा जब केवल साथ कनेक्ट होगा ssh youruser@yourhost
:
Host yourhost
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/bender
यदि आप छोड़ देते हैं Host yourhost
, तो सेटिंग्स सभी SSH कनेक्शनों पर लागू होगी। अन्य विकल्प भी तरह इस होस्ट मैच के लिए निर्दिष्ट किया जा सकता User youruser
, Port 2222
आदि यह आपको आशुलिपि के साथ कनेक्ट करने की अनुमति होगी ssh yourhost
के बजाय ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender
।