कंप्यूटर पर सभी उपयोगकर्ताओं के लिए ssh होस्ट को वैश्विक बनाता है


15

तो एसएसएच में ये फाइलें हैं जो एक विशिष्ट उपयोगकर्ता के लिए सेटिंग्स कॉन्फ़िगर करती हैं।

~/.ssh/authorized_keys
~/.ssh/config
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
~/.ssh/known_hosts

मैं इनमें से कुछ फ़ाइलों को वैश्वीकरण करना चाहूंगा, जैसे configऔर known_hosts। ताकि अन्य उपयोगकर्ता ( रूट सहित ) कॉन्फ़िगर किए गए होस्ट को साझा कर सकें।

क्या सबसे अच्छा तरीका होगा यह करने का?

जवाबों:


21

~/.ssh/configआप के लिए प्रासंगिक प्रणाली में / आदि / ssh / ssh_config मैन पेज के अनुसार सेटिंग्स रख सकते हैं :

ssh (1) निम्नलिखित क्रम में निम्नलिखित स्रोतों से कॉन्फ़िगरेशन डेटा प्राप्त करता है:

  1. कमांड लाइन विकल्प
  2. उपयोगकर्ता की कॉन्फ़िगरेशन फ़ाइल (~ / .ssh / config)
  3. सिस्टम-वाइड कॉन्फ़िगरेशन फ़ाइल (/ etc / ssh / ssh_config)

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

ध्यान दें कि केवल पहले मूल्य का उपयोग किया जाएगा, जिसका अर्थ है कि उपयोगकर्ता हमेशा स्थानीय स्तर पर सिस्टम-वाइड कॉन्फ़िगरेशन विकल्पों को ओवरराइड कर सकता है।

के लिए ~/.ssh/known_hostsआप उपयोग कर सकते हैं /etc/ssh/ssh_known_hostsया किसी अन्य फ़ाइल GlobalKnownHostsFile विन्यास विकल्प के द्वारा निर्दिष्ट:

GlobalKnownHostsFile

वैश्विक होस्ट कुंजी डेटाबेस के लिए / etc / ssh / ssh_ogn_hosts के बजाय उपयोग करने के लिए एक फ़ाइल निर्दिष्ट करता है।

मैं अनिश्चित हूँ अगर यह अन्य फ़ाइलों के लिए संभव है, लेकिन मुझे लगता है कि अगर आप वास्तव में उपयोगकर्ताओं के बीच निजी कुंजी साझा करना चाहते हैं तो आप सिम्बलिंक के साथ कुछ काम कर सकते हैं ।


1
आपको अपने GlobalKnownHostsFile उद्धरण में एक टाइपो मिला है।
cjm

1
आप UserKnownHostsFile को सेट कर सकते हैं = / dev / null ssh को कभी भी user_hosts फ़ाइल के अंदर एक वैध कुंजी नहीं मिलेगी लेकिन फिर भी उपयोगकर्ता एक अस्थायी स्वीकार कर सकता है।
जिंग

1
@ जीनिंग, ऐसा लगता है कि वास्तव में उसके लिए एक IgnoreUserKnownHostsविकल्प है (मान yesया no)।
काएल

ध्यान दें कि वैश्विक /etc/ssh/ssh_known_hostsफ़ाइल को विश्व-पठनीय होना चाहिए। मैं ssh-keygen -Hf /etc/ssh/ssh_known_hostsप्रविष्टियों को मैन्युअल रूप से जोड़ने के बाद मेरा पुन: उपयोग करने के लिए उपयोग कर रहा था , और ऐसा प्रतीत होता है कि यह केवल स्वामी के लिए सेट किया जा रहा था।
kael

1

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


2
यह उपयोगकर्ताओं को अपने स्वयं के होस्ट को जोड़ने से रोकेगा जो IMHO अनपेक्षित प्रभाव है।
मैकीज पीचोटका

मैं भूल जाता हूं कि अगर हार्डलिंक फ़ाइल के पास एक ही परमिट है, लेकिन मुझे संदेह है कि यह करता है। हालाँकि आप फ़ाइल को क्रोन के साथ कॉपी कर सकते हैं और फिर सुनिश्चित करें कि परमिट सही हैं।
xenoterracide
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.