.Ssh / config में कई HostName / पोर्ट संयोजन कैसे निर्दिष्ट करें


10

मेरे पास कई नोटबुक और वर्कस्टेशन हैं जो केंद्रीय सर्वर पर कई मर्क्यूरियल रिपॉजिटरी से खींचते हैं और धक्का देते हैं। मैं आमतौर पर .ssh/configएक उपनाम सेट करने के लिए उपयोग करता हूं :

Host repo-server
HostName server.somedomain
User user143
IdentityOnly yes
IdentityFile ~/hgkey
Port 156

... और कुछ और विकल्प, आपको यह विचार मिलता है। मैं तब hg push ssh://repo-server//hgroot/someprojectहर स्थानीय रिपॉजिटरी पर बस कर सकता हूं, और मैं एक जगह सर्वर का पता और पोर्ट बदल सकता हूं।

वर्कस्टेशन के लिए, यह ठीक काम करता है, लेकिन नोटबुक एक अलग पते और एक अलग पोर्ट का उपयोग करके सर्वर को नेटवर्क के अंदर या बाहर से एक्सेस कर सकते हैं। क्या कोई तरीका है जिससे मैं कई HostName / Port संयोजन निर्दिष्ट कर सकता हूं ताकि SSH स्वचालित रूप से उन्हें क्रम में आज़माए? इस तरह, उपयोगकर्ता सही पते की परवाह किए बिना धक्का और खींच सकते हैं।

(बेशक, वीपीएन का उपयोग करना सबसे सही समाधान होगा)

जवाबों:


5

मुझे डर है कि एसएसएच के साथ यह संभव नहीं है।

आप संभवतः ProxyCommandssh के विकल्प का उपयोग करके इसके चारों ओर काम कर सकते हैं, साथ ही एक कस्टम स्क्रिप्ट के साथ जो सर्वर से टीसीपी संबंध बनाता है (netcat का उपयोग करके), इस बात पर निर्भर करता है कि आपका नोटबुक कैसे / कहाँ जुड़ा है। की तर्ज पर कुछ:

#!/bin/bash
SSID=$(/sbin/iwgetid wlan0 -r)

case "$SSID" in
net1)
  nc <host1> <port1>
  ;;
net2)
  nc <host2> <port2>
  ;;
*)
  nc <host3> <port3>
  ;;
esac

फिर, आप में .ssh/config, आपको निम्नलिखित की आवश्यकता होगी:

Host repo-server
  User user143
  IdentityOnly yes
  IdentityFile ~/hgkey
  ProxyCommand path-to-script

लगता है कि मैं एक स्क्रिप्ट लिखूंगा जो HostNameप्रविष्टियों को संशोधित करती है । धन्यवाद।
लूलुक

यह लिनक्स विशिष्ट दिखता है .. उदाहरण के लिए, / sbin / iwgetid WSL के तहत मौजूद नहीं है ...
माइकल

-1

एक अन्य विकल्प आपके लैपटॉप के कुछ अप्रयुक्त स्थानीय पोर्ट के लिए "सही" आईपी के ssh पोर्ट 22 को अग्रेषित करने के लिए एक स्क्रिप्ट स्थापित करने के लिए हो सकता है और फिर वहां ssh। मैं इसे कई स्थितियों में उपयोग करता हूं।


1
यह एक उदाहरण के बिना बिल्कुल स्पष्ट नहीं है।
एंड्रयू शुलमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.