SSH: टू फैक्टर ऑथेंटिकेशन


30

मेरे पास वर्तमान में एक Ubuntu सर्वर 12.04 है जिसमें सांबा और कुछ अन्य सेवाओं के साथ ओपनएसएसएच चल रहा है। वर्तमान समय में मेरे पास सार्वजनिक कुंजी प्रमाणीकरण सेट है, और मैं सोच रहा हूं कि क्या दो कारक प्रमाणीकरण स्थापित करना संभव है? मैं Google प्रमाणक देख रहा हूं, जिसका उपयोग मैं वर्तमान में अपने जीमेल खाते के साथ कर रहा हूं।

मुझे एक PAM मॉड्यूल मिला है जो दिखता है कि यह संगत होगा लेकिन ऐसा लगता है कि आप एक पासवर्ड और उत्पन्न कोड का उपयोग करने के लिए मजबूर हैं।

अगर मेरे SSH सर्वर में प्रमाणित करने के लिए मेरी सार्वजनिक कुंजी के साथ Google प्रमाणक अनुप्रयोग (या कुछ समान) का उपयोग करने का कोई तरीका है, तो मुझे आश्चर्य हो रहा है?


अधिकांश टिप्पणियों में बग रिपोर्ट का उल्लेख है कि यह PAM और सार्वजनिक कुंजी प्रमाणीकरण OpenSSH के साथ उपयोग करना असंभव है। मैंने यह भी पाया है कि मैं अपने कुंजी के साथ एक पास वाक्यांश का उपयोग कर रहा हूँ, यह निरर्थक है। सभी समाधानों के साथ प्रतीत होता है कि केवल Google प्रमाणक और पासवर्ड ही सार्वजनिक कुंजी नहीं है। मैं इसे पूरी तरह से याद कर सकता हूं, लेकिन मैं अभी यह नहीं देखता कि दोनों को कैसे लागू किया जाए।
कंक्रीट गधा

यह निश्चित नहीं है कि यह -1 क्यों है, यह एक बहुत ही दिलचस्प सवाल है और मैं भी इसका उत्तर जानना चाहता हूं (ऐसा नहीं है कि मैं इसका उपयोग करने की संभावना रखता हूं, लेकिन फिर भी, ज्ञान बैंकों में अच्छा करने के लिए)
मार्क हेंडरसन

@Pierre क्या आप सार्वजनिक कुंजी प्रमाणीकरण और Google OTP दोनों की आवश्यकता कर रहे हैं ?
मॉर्गन

@mgorven हाँ, मैं सार्वजनिक कुंजी और Google OTP दोनों सेट करने का प्रयास कर रहा था। मैंने कुछ लोगों को यह कहते हुए सुना है कि यह दो कारकों के रूप में प्रमुख मायने रखता है, लेकिन मैं स्मृति से अनएन्क्रिप्टेड कुंजी को चोरी करने वाले मैलवेयर के बारे में चिंतित हूं। मेरे पास प्रमाणीकरण के लिए उपयोग किए जाने वाले दो पूरी तरह से अलग उपकरण हैं, मैं थोड़ा पागल हूं।
कंक्रीट गधा

यह आधिकारिक रूप से 6.2 में लागू होने का इरादा है: Bugzilla.mindrot.org/show_bug.cgi?id=983#c59
टोबियास किंजलर

जवाबों:


8

Red Hat ने RHSS (और इसलिए CentOS) में OpenSSH के लिए एक पैच जोड़ा है, जिसमें कई प्रमाणीकरण तंत्रों की आवश्यकता होती है, ताकि आप इसके लिए कुछ कर सकें:

RequiredAuthentications2 publickey,keyboard-interactive

अधिक विवरण नहीं के लिए रिलीज़ नोट देखें ।

दुर्भाग्य से यह सुविधा OpenSSH अपस्ट्रीम और Ubuntu 12.04 में नहीं लगती है, इसलिए जब तक आप पैच को ढूंढना नहीं चाहते हैं और OpenSSH को फिर से खोलना चाहते हैं मुझे डर है कि आप भाग्य से बाहर हैं।


मुझे यह कहना है कि आप मुझे जवाब खोजने में किए गए प्रयास की सराहना करते हैं, मैंने निश्चित रूप से Google परिणामों के कुछ पृष्ठों पर जाने की कोशिश की, लेकिन सभी ने कहा कि आपने जो उल्लेख किया था, वह केवल एक पासवर्ड और एक ओटीपी का उपयोग करना था। मैं शायद फीचर के साथ खेलने के लिए एक CentOS VM बनाऊंगा।
कंक्रीट गधा

@Pierre नहीं है कि बहुत प्रयास, मैंने पहले ;-) इस सुविधा के बारे में पता था
mgorven

मुझे संबंधित बग और कुछ और नोट मिले हैं । बग में एक अनुलग्नक के रूप में पैच शामिल है।
रॉबी बसाक

और यहाँ एक नदी के ऊपर खुलने वाला बग है । ऐसा लग रहा है कि जल्द ही होने वाली फंक्शंस ओपनशीश में अपस्ट्रीम होगी।
रॉबी बसक

ओपनश 6.2 उबंटू के विकास रिलीज में उतरा है, इसलिए किसी भी आपदा के लिए बचाएं यह समर्थन अपेक्षित 13.10 रिलीज में होगा। यह AuthenticationMethodsकई आवश्यक तरीकों को निर्दिष्ट करने के लिए अपस्ट्रीम का उपयोग करता है , ताकि आपको एक Ssh कुंजी और PAM दोनों की आवश्यकता हो, जिसमें PAM Google प्रमाणक अंत कर रहा है।
रॉबी बसाक

8

आप डुओ सिक्योरिटी की तलाश में हैं


1
यह। हाँ। मुझे यह बात अच्छी लगी!
LVLAaron

निश्चित रूप से - डुओ को यूनिक्स / लिनक्स (उत्तर में लिंक), ओपनवीपीएन ( duosecurity.com/docs/openvpn_as ), या किसी भी OATH TOTP आधारित टू-फैक्टर सेवा, या लास्टपास पासवर्ड प्रबंधन के लिए सेट करना आसान है । Google प्रमाणक (जो TOTP का उपयोग करता है) के साथ संगत कोई भी सेवा डुओ के मोबाइल ऐप या TOTP का समर्थन करने वाले एक हार्डवेयर टोकन के साथ उपयोग की जा सकती है।
रिचवेल

5

आप दोनों Google प्रमाणक PAM मॉड्यूल और सार्वजनिक कुंजियों का उपयोग कर सकते हैं, लेकिन उस समय केवल एक ही किसी दिए गए प्रमाणीकरण के लिए उपयोग किया जाएगा। यही है, यदि कोई उपयोगकर्ता अधिकृत सार्वजनिक कुंजी के साथ लॉग इन करता है, तो टोकन की आवश्यकता नहीं होगी।

या, यह अन्यथा कहने के लिए: टोकन केवल पासवर्ड प्रमाणीकरण के लिए आवश्यक हैं, एसएसएच कुंजी नहीं।

यह सीमा वैसे Google प्रमाणक मॉड्यूल से नहीं आती है, लेकिन SSH से, जो ChallengeResponseAuthenticationPAM के लिए केवल दो कारक प्रमाणीकरण (के माध्यम से ) लागू करता है, लेकिन एक वैध सार्वजनिक कुंजी प्रदान किए जाने पर PAM को कॉल नहीं करता है।


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

3

यह सवाल 2012 से है। चूंकि, SSH बदल गया है और SSH2 प्रोटोकॉल लागू हो गया है।

SSH (> = 6.2) के अधिक हाल के संस्करणों पर, आदमी sshd_config का उल्लेख करता है:

AuthenticationMethods
       Specifies the authentication methods that must be successfully completed for a user to be
       granted access.  This option must be followed by one or more comma-separated lists of
       authentication method names.  Successful authentication requires completion of every method
       in at least one of these lists.

       For example, an argument of ``publickey,password publickey,keyboard-interactive'' would
       require the user to complete public key authentication, followed by either password or key-
       board interactive authentication.  Only methods that are next in one or more lists are
       offered at each stage, so for this example, it would not be possible to attempt password or
       keyboard-interactive authentication before public key.

       This option is only available for SSH protocol 2 and will yield a fatal error if enabled if
       protocol 1 is also enabled.  Note that each authentication method listed should also be
       explicitly enabled in the configuration.  The default is not to require multiple authentica-
       tion; successful completion of a single authentication method is sufficient.

इस पृष्ठ http://lwn.net/Articles/544640/ में एक ही समय में एक पब्लिके और पीएएम प्रमाणीकरण का उपयोग करने की संभावना का भी उल्लेख किया गया है।


2

मुझे पता है कि यह सवाल थोड़ा बासी है, लेकिन भविष्य के लोगों के लिए (खुद शामिल) जो एक समाधान की तलाश कर रहे हैं, स्क्रिप्ट को चलाने के लिए sshd_config फ़ाइल में ForceCommand विकल्प का उपयोग करने की बात भी है जो प्रमाणीकरण करता है। यहां एक उदाहरण स्क्रिप्ट है जिसे आप अपनी आवश्यकताओं के लिए थोड़ा संशोधित कर सकते हैं, हालांकि उस उदाहरण में वह इसे sshd_config के ForceCommand के साथ सिस्टम-वाइड बनाने के बजाय अधिकृत_की फ़ाइल से कॉल करता है।


1

एक YubiKey प्राप्त करें और इस गाइड का पालन करें http://berrange.com/posts/2011/12/18/multi-factor-ssh-authentication-using-yubikey-and-ssh-public-keys- पूरी तरह से

AFAIK, SSH एक्सेस के लिए अपने सर्वर पर Yubikey को लागू करने का यह सबसे अच्छा तरीका है। उपरोक्त गाइड आपको सार्वजनिक-कुंजी + yubikey का उपयोग करने में सक्षम बनाता है जबकि यदि आप आधिकारिक गाइड ( http://code.google.com/p/yubico-pam/wiki/YubikeyAndSSHViaPAM ) के साथ जाते हैं, तो यह जनता के लिए काम नहीं करता है- कुंजी।

सादर, वी.आई.पी.


0

यदि आप अपनी निजी कुंजी पर पासफ़्रेज़ सेट करते हैं तो आपके पास पहले से ही दो-कारक प्रमाणीकरण है। लोगों को लॉग इन करने की आवश्यकता होगी:

  1. आपके पास कुछ है - आपकी निजी कुंजी
  2. कुछ आप जानते हैं - आपकी निजी कुंजी को पासफ़्रेज़

3
दो पासवर्ड दो-कारक प्रमाणीकरण नहीं करते हैं । कुंजी स्वयं एक मान्य "कुछ आपके पास" नहीं है क्योंकि यह कोई बात नहीं है, बस जानकारी का एक टुकड़ा है। प्रमाणीकरण कारक के रूप में किसी भी उपयोग के लिए चीज को गैर-मैथुन योग्य या कम से कम गैर-तुच्छ रूप से मैथुन योग्य होना चाहिए।
MadHatter

2
मैं पूरी तरह असहमत हूं। यदि चाबियाँ और प्रमाण पत्र "आपके पास कुछ नहीं हैं" तो वे क्या हैं? वे निश्चित रूप से "कुछ ऐसा नहीं है जो आप जानते हैं" (क्या आप अपने एसएसएच कुंजी को बंद करने की सीख रहे हैं?), और बिल्कुल नहीं "कुछ आप"। वे केवल तीन विकल्प हैं, इसलिए उन्मूलन की प्रक्रिया द्वारा, वे सबसे निश्चित रूप से "आपके पास कुछ है"।
बार्ट बी

1
मैं सहमत हूँ; मेरे लिए, समस्या अधिकतम में है (कुछ आपके पास है | पता | हैं)। दो-कारक प्रमाणीकरण का विचार विभिन्न गुणों वाले दो वर्गों के सदस्यों की आवश्यकता है; कुछ ऐसा जिसे आप जानते हैं कि ले जाना आसान है, लेकिन इसे किसी और के द्वारा उसी समय तक जाना जा सकता है, जब आप इसे जानते हैं; इसलिए हम एक दूसरा, अलग कारक जोड़ते हैं। "आपके पास कुछ है" केवल तभी अलग है जब यह अनोपेप्लेबल है (या कॉपी करना कठिन है)। अन्यथा, निश्चित रूप से, यह ऐसा कुछ नहीं है जिसे आप जानते हैं, लेकिन यह आपके द्वारा ज्ञात किसी चीज़ से गुणात्मक रूप से भिन्न नहीं है , क्योंकि कोई और आपके पास उसी समय हो सकता है।
MadHatter

2
मैं निश्चित रूप से सहमत हूं कि सीधे उपयोगकर्ता नाम + पासवर्ड की सुरक्षा में पासवर्ड-संरक्षित कीपर एक बड़ा सुधार है। मैं दुखी नहीं हूं, इस बात से सहमत हूं कि इस तरह की जोड़ी दो-कारक के रूप में गिना जाती है, और हम शायद उस पर असहमत होने के लिए सहमत होंगे।
MadHatter

3
यदि आपके पास पासफ़्रेज़-एन्क्रिप्टेड निजी कुंजी है, तो आप केवल सर्वर पर एक बात साबित करते हैं: यह कि आपका क्लाइंट निजी कुंजी जानता है। यह सर्वर को साबित नहीं करता है कि आप अपना पासफ़्रेज़ जानते हैं; सर्वर आपके पासफ़्रेज़ के अस्तित्व के बारे में भी नहीं जानता है। इसलिए यह केवल "कुछ आप जानते हैं" (क्योंकि आपका ग्राहक इसे जानता है) और केवल एक कारक है। अगर किसी हमलावर को सिर्फ एक चीज (आपकी निजी चाबी) मिलती है तो आप समझौता कर लेते हैं। वह एक कारक है। तर्क है कि दो कारकों के रूप में आपका पासफ़्रेज़ और निजी कुंजी गिनती केवल परिष्कार में एक व्यायाम है। क्या मायने रखता है तार पर क्या होता है।
रॉबी बसाक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.