क्या मैं किसी भिन्न उपयोगकर्ता नाम के साथ दूरस्थ प्रणाली में प्रवेश करने के लिए SSH कुंजी प्रमाणीकरण का उपयोग कर सकता हूं?


17

मान लीजिए कि मेरे पास एक रिमोट सिस्टम है जिसका नाम "रीमोटसिस्टम" है, और उस सिस्टम पर एक उपयोगकर्ता खाता "फ़ॉउसर" है।

मुझे पता है कि मेरी स्थानीय प्रणाली पर, मैं स्थानीय उपयोगकर्ता "फ़ॉउसर" के रूप में एक एसएसएच कुंजी जोड़ी उत्पन्न कर सकता हूं, "रीमोटसिस्टम" पर सार्वजनिक कुंजी को "/home/foouser/.ssh/authorized_keys" फ़ाइल में डाल सकता हूं। जब मैं अपने स्थानीय सिस्टम से "रीमोटसिस्टम" के रूप में एसएसएच को "फ़ॉउसर" कहता हूं, तो एसएसएच मुझे प्रमाणित करने के लिए प्रमुख जोड़ी का उपयोग करता है।

लेकिन क्या होगा अगर मेरा स्थानीय उपयोगकर्ता नाम रिमोट सिस्टम पर उपयोगकर्ता नाम के समान नहीं है? यही है, क्या होगा अगर मैं एसएसएच को स्थानीय उपयोगकर्ता "बारूसर" के रूप में "रीमोटसिस्टम" करना चाहता हूं? जाहिर है, मुझे "बारुसर" के लिए एक प्रमुख जोड़ी बनाने और सार्वजनिक कुंजी को "/home/foouser/.ssh/authorized_keys" में जोड़ने की आवश्यकता होगी। फिर, मुझे स्थानीय रूप से "बारूसर" के रूप में लॉग इन करते समय "एसओएस फ़ॉस्फर @ रीमोटसिस्टम" में सक्षम होना चाहिए, और एसएसएच कुंजी जोड़ी को प्रमाणित करने के लिए उपयोग करेगा, है ना?

मैं पूछ रहा हूं क्योंकि मैं इस परिदृश्य में काम कर रहा हूं, बिना सफलता के कुंजी प्रमाणीकरण प्राप्त करने की कोशिश कर रहा हूं। मुझे यकीन नहीं है कि अगर उपयोगकर्ता नाम बेमेल है, या दूरस्थ प्रणाली पर SSH सर्वर के साथ एक कॉन्फ़िगरेशन समस्या है।


मैंने लॉगिंग सर्वर-साइड को क्रैंक किया, और यह दूरस्थ उपयोगकर्ता के होम निर्देशिका पर अनुमतियों के साथ एक समस्या साबित हुई। समस्या सुलझ गयी! सभी को धन्यवाद जिन्होंने जवाब दिया।
मैट हर्न

जवाबों:


11

हां, आप ऐसा कर सकते हैं, जैसा आपने वर्णित किया है।

baruser @ यहाँ ~ $ ssh-add -l
4096 10: b3: fd: 29: 08: 86: 24: a6: da: 0a: dd: c6: 1e: b0: 66: 6a id_rsa (RSA)
baruser @ यहाँ ~ $ ssh foouser @ remotesystem
संदेश संदेश, आदि
foouser @ remotesystem ~ $

जवाब के लिए धन्यवाद। मुझे पता था कि मैं पागल नहीं था ... :-) रिमोट सिस्टम के SSH सर्वर कॉन्फ़िगरेशन में कुछ गड़बड़ होनी चाहिए, जिससे मुख्य प्रमाणीकरण को पूरी तरह से काम करने से रोका जा सके।
मैट हर्न

4
यदि आप "ssh -V foouser @ remotesystem" करते हैं तो आपको कुछ जानकारी मिल सकती है कि क्या गलत हो रहा है। अक्सर यह ~ / .sh पर एक अनुमति त्रुटि है।
पॉल टॉम्बलिन

4
नहीं -V (संस्करण संख्या दिखाता है) लेकिन -vvv (अधिकतम वर्बोसिटी)
लेवेन

10

यह थोड़ा हटकर है, लेकिन .....

यदि आप दूरस्थ सर्वर के लिए हमेशा एक ही उपयोगकर्ता नाम का उपयोग कर रहे हैं, तो आपको अपने ssh config में होस्ट जोड़ने के लिए भी उपयोगी हो सकता है:

Host remotesystem
    User baruser

इस तरह से आपको लॉग इन करते समय उपयोगकर्ता नाम निर्दिष्ट करने के लिए याद रखने की आवश्यकता नहीं है, और भविष्य में कुंजियों के साथ समस्या होने पर आप इसे नियंत्रित करते हैं।


5

आपका स्थानीय उपयोगकर्ता नाम वास्तव में मायने नहीं रखता (निजी कुंजी से अलग आपके स्थानीय उपयोगकर्ता के घर निर्देशिका के अंदर रहने के लिए)। बस दूरस्थ उपयोगकर्ता के authorized_keysअनुभाग की कुंजी की प्रतिलिपि बनाएँ और यह काम करेगा।


3

किसी भी ssh संबंधित समस्याओं के साथ, पहली बात यह है कि ग्राहक की वाचालता को बदलना है:

ssh उपयोगकर्ता @ मशीन -vvv

यदि यह आपको गलत होने के रूप में कोई भी जानकारी देने में विफल रहता है, तो आपको सर्वर पर लॉग स्तर को बदलने और डेमॉन को पुनरारंभ करने की आवश्यकता है।

LogLevel DEBUG3

आपको /var/log/auth.log (या जहां कभी ssh को लॉग इन करने के लिए कॉन्फ़िगर किया गया है) में डीबग आउटपुट ढूंढना चाहिए। एक बार जब आप समस्या पा लेते हैं, तो इसे वापस सेट करना याद रखें कि आपने इसे कैसे पाया।


2

दोनों मशीनों पर .shsh निर्देशिकाओं की अनुमति बहुत सही है। आम तौर पर, इसका मतलब है कि .ssh डायरेक्टरी पर 700 और होम डायरेक्टरी पर 755 सबसे ज्यादा है। .Ssh निर्देशिकाओं में सभी फ़ाइलों पर 600 के अलावा।

यदि दूरस्थ सिस्टम पर उपयोगकर्ता रूट है, तो सुनिश्चित करें कि रूट ssh कर सकता है। (Sshd_config में PermitRootLogin) और वह सार्वजनिक कुंजी (PubkeyAuthentication) और यदि आवश्यक हो तो RSA (RSAAuthentication) सक्षम हैं।


RSAAuthentication एक पूरी तरह से अलग विधि नहीं है?
user1686

RSA SSH द्वारा समर्थित सार्वजनिक कुंजी एल्गोरिथ्म में से एक है (DSA के साथ।) यह SSH1 में एकमात्र तरीका था।
अलेक्जेंड्रे कार्मेल-वीलीक्स

2

यदि आपके पास एसई लिनक्स सक्षम है, तो आपको निम्नलिखित कार्य भी करने होंगे।

SELinux लेबल जोड़ें authorized_keysताकि इसे sshd द्वारा एक्सेस किया जा सके।

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh

0

लगता है कि आप चीजों को सही ढंग से कर रहे हैं, लेकिन सुनिश्चित करें कि अनुमतियाँ अधिकृत_की पर सही हैं। उन्हें 600 पर सेट किया जाना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.