सबसे पहले, रेडहैट (और वेरिएंट) में ओपनएसएसएच के लिए एक समर्थित पैच है जो AuthorizedKeysCommand
और AuthorizedKeysCommandRunAs
विकल्प जोड़ता है । पैच को ओपनशेड 6.2 में ऊपर की तरफ मर्ज किया गया है। मैन पेज से उद्धृत करने के लिए :
AuthorizedKeysCommand
उपयोगकर्ता की सार्वजनिक कुंजी देखने के लिए उपयोग किए जाने वाले प्रोग्राम को निर्दिष्ट करता है। कार्यक्रम को अपने पहले तर्क के साथ अधिकृत किया जा रहा है, उपयोगकर्ता का नाम अधिकृत किया जाना चाहिए, और इसे मानक आउटपुट AuthorizedKeys लाइनों पर प्रस्तुत करना चाहिए (sshd (8) में AUTHORIZED_KEYS देखें)। डिफ़ॉल्ट रूप से (या जब खाली स्ट्रिंग पर सेट किया जाता है) कोई AuthorizedKeysCommand रन नहीं है। यदि AuthorizedKeysCommand सफलतापूर्वक उपयोगकर्ता को अधिकृत नहीं करता है, तो प्राधिकरण AuthorizedKeysFile के माध्यम से गिरता है। ध्यान दें कि इस विकल्प का प्रभाव केवल PubkeyAuthentication के साथ चालू होता है।
AuthorizedKeysCommandRunAs
उस उपयोगकर्ता को निर्दिष्ट करता है जिसके खाते में AuthorizedKeysCommand चलाया जाता है। खाली स्ट्रिंग (डिफ़ॉल्ट मान) का अर्थ है कि अधिकृत उपयोगकर्ता का उपयोग किया जा रहा है।
आज रात मेरे प्रयोगों में, मैंने पाया कि बॉक्स से बाहर, यह डिफ़ॉल्ट SELinux नीतियों के कारण काम नहीं करता है। आप SELinux प्रवर्तन को बंद करके इसे प्राप्त कर सकते हैं setenforce 0
। चूंकि SELinux की ओर मुड़ना शायद एक बुरा विचार है, इसके बजाय आप सही नीति उत्पन्न कर सकते हैं। मेरे मामले में, यह विकल्प सेट अप करने और फिर उपयोग करने के साथ लॉग इन करने के लिए उतना ही सरल था । यह मूल रूप से ऑडिट लॉग के माध्यम से दिखता है और उन चीजों को ढूंढता है जिन्हें रोका गया था और उनके लिए अपवाद उत्पन्न करता है। यदि आपके पास वहाँ अन्य सामान होने की संभावना है जो कि श्वेतसूची में हो सकता है, तो आपको यह सुनिश्चित करने के बारे में अधिक सीखना चाहिए कि आपको नई नीतियां सही मिल रही हैं।AuthorizedKeysCommand
/etc/ssh/sshd_config
audit2allow -a -M local && semodule -i local.pp
audit2allow