एक ही कमांड में SSH सुरंग के माध्यम से SSH कनेक्शन स्थापित करें


1

मैं इंटरनेट पर SSH का उपयोग करके अपने एक आंतरिक कंप्यूटर (निजी आईपी) से कनेक्ट करने का प्रयास कर रहा हूं। उस कंप्यूटर का SSH पोर्ट उजागर नहीं होता है इसलिए मैं पहली बार सार्वजनिक संसाधन (पब्लिक आईपी) के माध्यम से एक सुरंग बनाता हूं।

ssh <public ip> -p 2022 -l root -L 127.1.1.1:2222:<private ip>:22

उसके बाद, मैं एसएसएच कनेक्शन इस तरह बना सकता हूं:

ssh username@127.1.1.1 -p 2222

क्या एक एकल आदेश के साथ इसे निष्पादित करना संभव है?


यह प्रश्न इस के समान है superuser.com/questions/465423/...
Johannes

जवाबों:


0

आप हमेशा बस एक के बाद एक कमांड चला सकते हैं:

ssh root@<public ip> -p 2022 -L 127.1.1.1:2222:<private ip>:22 && 
    ssh username@127.1.1.1 -p 2222

अपने आप को बहुत सारे अनावश्यक टाइपिंग से बचाने के लिए, बैश उपनामों का उपयोग करें। इस तरह से एक लाइन अपने में जोड़ें $HOME/.bashrc:

alias ssh_tunnel='ssh <public ip> -p 2022 -l root -L 127.1.1.1:2222:<private ip>:22 && ssh username@127.1.1.1 -p 2222'

अब, एक नया टर्मिनल खोलें और आप सुरंग को चालू कर सकते हैं और चलाकर कनेक्ट कर सकते हैं

ssh_tunnel

बस यह पता चला कि यह एकल कमांड काम करता है: ssh -A -t root @ & lt; public ip & gt; ssh -t & lt; निजी आईपी & gt; । जाहिरा तौर पर इसे 2 चरणों में करने की आवश्यकता नहीं है।
ddewaele

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