ssh config कई hops प्लस "sudo su" के लिए
मेरे पास एक विशेष सेटअप है जिसे चरणों के इस क्रम की आवश्यकता है:
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।
जवाब
आप इसका उपयोग .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
यदि आपके पास रूट है तो आप अपनी सार्वजनिक कुंजी को अधिकृत_कीप्स पर तैनात कर सकते हैं otheruserऔर पासवर्ड का उपयोग किए बिना लॉगिन कर सकते हैं। otheruserऐसा करने के लिए स्विच करने के बाद :
mkdir -p ~/.ssh
और अपनी सार्वजनिक कुंजी ~ / .ssh / अधिकृत_की में डालें। अब आपको otheruserबस ऐसा करने में दूरस्थ रूप से लॉग इन करने में सक्षम होना चाहिए ssh otheruser@host।