SSH का उपयोग करते समय स्थायी रूप से पते संग्रहीत करें


12

मेरे पास कुछ रिमोट सर्वर हैं जिन्हें मैं टर्मिनल के माध्यम से जोड़ता हूं। सर्वरों के पास एक डोमेन नहीं है, केवल एक आईपी पता है जिसे याद रखना मुश्किल है जब मुझे उनमें से कुछ मिला।

क्या टर्मिनल में मूल्यों को स्थायी रूप से संग्रहीत करने का एक तरीका है, ताकि मैं निम्नलिखित कार्य कर सकूं?

server1 = 111.222.111.222

और कमांड टाइप करें:

ssh root@server1

के बजाय:

ssh root@111.222.111.222

जवाबों:


22

SSH कनेक्शन के लिए, आप एक उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल बना सकते हैं ~/.ssh/configऔर मैपिंग को वहां रख सकते हैं

Host server1
  Hostname      111.222.111.222

आप आसानी से अन्य क्षेत्रों को जोड़ सकते हैं जैसे कि Port(गैर-मानक पोर्ट के लिए) और User(उपयोगी अगर रिमोट सिस्टम पर आपका उपयोगकर्ता नाम स्थानीय सिस्टम से अलग है)। man ssh_configपूरी जानकारी के लिए देखें


14

हां, बस उन्हें फ़ाइल में लिख लें /etc/hosts। इसमें निम्नलिखित सिंटैक्स है:

1.2.3.4 servername additional_servername

कहाँ पे:

  • 1.2.3.4 आईपी ​​एड्रेस है
  • servername नाम है
  • additional_servername एक वैकल्पिक नाम है

सेव करने के बाद आप इसके नाम से सर्वर तक पहुंच सकते हैं।


@ असामान्य यदि यह वह उत्तर है जिसके साथ आप गए थे, तो कृपया इसे स्वीकार करने पर विचार करें (ऊपर / नीचे-वोट बटन के नीचे का निशान)।
jpmc26

8

बेशक अपने विशेष मुद्दे के लिए आप @chaos और @steeldriver सलाह का पालन करना चाहते हैं, लेकिन सामान्य स्थिति में, "टर्मिनल में स्थायी रूप से स्टोर मूल्यों" के लिए, आप शेल वेरिएबल देख रहे हैं। उन्हें कैसे सेट किया जाए यह आपके शेल पर निर्भर करेगा (मुझे लगता है echo $SHELLकि संबंधित जानकारी प्रदान करेगा)।

यदि "स्थायी रूप से" आपका मतलब है "जब तक मैं इस टर्मिनल सत्र से बाहर नहीं निकलता", तो आप बस export server1=111.222.111.222कमांड का उपयोग कर सकते हैं यदि आप bash-based शेल ( setenv server1 111.222.111.222एक- csh/tcshशेल शेल के लिए, यदि मुझे सही याद है)। फिर उसे अपने साथ लगाकर करके अपने चर का उपयोग कर सकते $ : ssh root@$server1

यदि "स्थायी रूप से" आपका मतलब है "हर बार जब मैं एक नया टर्मिनल लॉन्च करता हूं", तो आपको शेल वेरिट फाइल में से एक में अपना चर सेट करना होगा। उदाहरण के $HOME/.bashrcलिए bashशेल के गोले में, या $HOME/.cshrc- संभवतः पिछले पैराग्राफ में उल्लिखित उसी सिंटैक्स का उपयोग करते हुए। ध्यान दें कि आपको इनिट फ़ाइल को स्रोत करना होगा (जैसे source $HOME/.bashrcकि परिवर्तनों को ध्यान में रखने के लिए एक नया शेल खोलना होगा।

NB: स्मृति से उत्तर, कुछ छोटे समायोजन की आवश्यकता हो सकती है।


2
स्थायी रूप से मैं कंप्यूटर को पुनः आरंभ करने पर भी उल्लेख करता हूं। मैं इस पर एक नज़र डालूँगा, यह कुछ समय के लिए काम आ सकता है।
theusual

फिर दूसरी विधि लागू होती है (शेल इनिट फाइलें)।
स्किप्पी ले ग्रैंड गौरू

1

इस सवाल का सीधा जवाब नहीं है (अराजकता और मारक क्षमता पहले से ही प्रदान की गई है जो मुझे लगता है कि सबसे अच्छा शाब्दिक समाधान होगा), लेकिन अगर आपको केवल मामलों के बहुमत में एक पते पर एक उपयोगकर्ता को ssh करने की आवश्यकता है, तो संपादन देख रहे हैं .bash_aliasesआपके होम डायरेक्टरी की फाइल उपयोगी होनी चाहिए, क्योंकि आप पूरे टर्मिनल कमांड के लिए एक उपनाम बना सकते हैं।


0

विशिष्ट उत्तर बहुत अच्छे हैं।

सामान्य तौर पर, यदि आप शेल में कुछ चीजों को परिभाषित / सेटअप करना चाहते हैं, तो बस इसे करने के लिए एक स्क्रिप्ट लिखें और तब इसे लागू करें sourceया .जब आप उस सेटअप को प्रभावी रूप से चाहते हैं।

यदि यह कुछ ऐसा है जो आप हर समय चाहते हैं, तो आप इसे (लॉगिन गोले के लिए) या सभी गोले के लिए .bashrc (यदि आप बैश का उपयोग करते हैं) में स्रोत कर सकते हैं।

इस तरह से एक दृष्टिकोण के साथ, आपके पास काम करने के लिए कई स्क्रिप्ट्स हो सकती हैं जो अलग-अलग काम के वातावरण को सेट करने के लिए आवश्यक हैं जब तक आप सुनिश्चित करते हैं कि वे एक-दूसरे पर कदम नहीं रखते हैं यदि आप उनमें से किसी एक को पहले एक को लागू करने के बाद आह्वान करते हैं।

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