ssh config कई hops प्लस "sudo su" के लिए

Oct 16 2020

मेरे पास एक विशेष सेटअप है जिसे चरणों के इस क्रम की आवश्यकता है:

ssh me@host1
ssh me@host2
sudo su otheruser

मेरे पास है:

  • मेरे लैपटॉप पर एक ssh कुंजी जो मुझे अनुमति देता है ssh me@host1
  • होस्ट 1 पर एक ssh कुंजी जो मुझे अनुमति देता है ssh me@host2।

मेरे पास अनुमति नहीं है ssh otheruser@host2।

मेरा लक्ष्य है: क्या मैं इसे स्वचालित कर सकता हूं? अधिमानतः मेरे लैपटॉप में ~ /। Ssh / config फ़ाइल है, इसलिए मैं बस कर सकता हूं:

ssh otheruser

... और कॉन्फिगरेशन को ध्यान से रखना चाहिए, आदर्श रूप से पासवर्ड सहित?

मैं निम्नलिखित ssh विन्यास के साथ पहले से ही वहाँ से 2/3 प्राप्त कर सकता हूँ:

Host host1
HostName host1.example.com

Host host2
HostName host2.example.com

Host mostly_there
HostName host2.example.com
ProxyJump host1 host2

उपरोक्त मुझे अनुमति देता है ssh mostly_thereलेकिन मुझे अभी भी करना है sudo su otheruser।

जवाब

1 jeb Oct 20 2020 at 06:17

आप इसका उपयोग .ssh / config में कर सकते हैं:

HOST host1
  user me

HOST host2
    USER me
    ProxyCommand ssh host1 -W %h:%p

HOST otheruser
    USER me
    ProxyCommand ssh host1 -W %h:%p
    RemoteCommand sudo su -c '/bin/bash -i' otheruser

उपयोगकर्ता उपयोगकर्ता के साथ host2 से जुड़ने के लिए बस उपयोग करें:

ssh otheruser

वर्तमान में इसकी खामी है, कि यह एक पूर्ण संवादात्मक खोल नहीं है, लेकिन इससे बेहतर आह्वान द्वारा इसे ठीक किया जा सकता है /bin/bash -i

ArkadiuszDrabczyk Oct 16 2020 at 18:10

यदि आपके पास रूट है तो आप अपनी सार्वजनिक कुंजी को अधिकृत_कीप्स पर तैनात कर सकते हैं otheruserऔर पासवर्ड का उपयोग किए बिना लॉगिन कर सकते हैं। otheruserऐसा करने के लिए स्विच करने के बाद :

mkdir -p ~/.ssh

और अपनी सार्वजनिक कुंजी ~ / .ssh / अधिकृत_की में डालें। अब आपको otheruserबस ऐसा करने में दूरस्थ रूप से लॉग इन करने में सक्षम होना चाहिए ssh otheruser@host।