ओपनएसएसएच: एक मैच ब्लॉक को कैसे समाप्त किया जाए


49

मैं कुछ उपयोगकर्ताओं को एसएफटीपी तक सीमित करने के लिए Matchओपनएसएसएच /etc/ssh/sshd_config(डिबियन पर) में एक ब्लॉक का उपयोग कर रहा हूं :

# my stuff
Match group sftponly
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp -u 0002
    ChrootDirectory %h

जैसा कि आप देख सकते हैं, मैं #my stuffकस्टम कॉन्फ़िगरेशन फ़ाइलों में एक टिप्पणी का उपयोग आसानी से उन डिफ़ॉल्ट डिफ़ॉल्ट अंतरों को अलग करने के लिए करता हूं जो मैंने किए थे (और मैं उन कॉन्फ़िगरेशन फ़ाइलों के अंत में डाल देता हूं)।
अब मैं निर्देशन UseDNS noको विन्यास में जोड़ना चाहता था (लॉगिन में तेजी लाने के लिए) लेकिन ओपनएसएसएच ने कहा Directive 'UseDNS' is not allowed within a Match block

अब मैं सोच रहा था कि क्या End Matchउन मैच ब्लॉक को समाप्त करने के लिए एक वाक्यविन्यास है ?

जवाबों:


30

ओपनश 6.5p1 या इसके बाद के संस्करण के साथ एक मैच ब्लॉक को समाप्त करने के लिए, लाइन का उपयोग करें: Match all

यहाँ कोड का एक टुकड़ा है, मेरी /etc/ssh/sshd_configफ़ाइल से लिया गया है :

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

Match host 192.168.1.12
    PasswordAuthentication yes
Match all

X11Forwarding yes
X11DisplayOffset 10

एकमात्र के साथ एक पंक्ति Matchकाम नहीं करेगी। (यह मेरे लिए काम नहीं किया, sshd शुरू करने से इनकार कर दिया)


2
कूल, मैंने अभी-अभी कोशिश की है कि यह एक उम्मीद के मुताबिक काम करे और मैं भी UseDNSनिर्देश का उपयोग कर सकता हूं (जो पहले काम नहीं किया था)। नए उत्तर के रूप में इसे स्वीकार करना। - नए ओपनएसएसएच संस्करण स्पष्ट रूप से नहीं होंगे। रिक्त स्थान से प्रारंभ करें Match: lists.mindrot.org/pipermail/openssh-unix-dev/2014-April/…
mreithub

42

ऐसा लगता है कि मैच ब्लॉक को स्पष्ट रूप से समाप्त करने का कोई तरीका नहीं है। से sshd_config मैनुअल पृष्ठ :

यदि मैच लाइन पर सभी मानदंड संतुष्ट हैं, तो निम्न पंक्तियों पर कीवर्ड किसी अन्य मिलान लाइन या फ़ाइल के अंत तक , कॉन्फ़िगरेशन फ़ाइल के वैश्विक अनुभाग में सेट किए गए ओवरराइड करते हैं।

तो Matchब्लॉक sshd_configफ़ाइल के अंत में होना चाहिए ।


7
एक अन्य विकल्प के साथ कुछ भी नहीं है, लेकिन उस Matchपर एक लाइन है, जो प्रभावी रूप से सब कुछ से मेल खाता है और इसलिए ब्लॉक को 'समाप्त' करने के समान है। यह तब भी आपको उन निर्देशों का उपयोग नहीं करने देगा जो मैच ब्लॉकों में अनुमति नहीं है, हालांकि, यह आपके विशेष परिदृश्य के साथ मदद नहीं करेगा।
नाथन बाउस्कल

4
"मैच ब्लॉकों को sshd_config फ़ाइल के अंत में होना चाहिए।" मेरे लिए बहुत उपयोगी है और मैन पेज में स्पष्ट रूप से पर्याप्त (मेरे लिए) नहीं है, आदि। धन्यवाद।
माउंटेनएक्स

0

मुझे लगता है कि हमें उसी समय Matchऔर Hostकुंजी का उल्लेख करना चाहिए ।

Host

निम्नलिखित घोषणाओं (अगले Hostया Matchकीवर्ड तक) को केवल उन होस्ट के लिए प्रतिबंधित करता है जो कीवर्ड के बाद दिए गए पैटर्न में से एक से मेल खाते हैं।

Match

निम्नलिखित घोषणाओं (अगले Hostया Matchकीवर्ड तक) को केवल तभी उपयोग करने के लिए प्रतिबंधित करता है जब मैच कीवर्ड के बाद की स्थिति संतुष्ट हो।

man ssh_configदोनों के मैनुअल को पढ़ना , Host *और Match allपूर्व प्रतिबंध ब्लॉक को रीसेट करेगा, कोई फर्क नहीं पड़ता कि यह Matchब्लॉक या Hostब्लॉक है।

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