SSH - ~ / .ssh / config फाइल में "-t कमांड" कैसे शामिल करें


13

मैं ~/.ssh/configफ़ाइल का उपयोग करता हूं ताकि मैं आसानी से प्रवेश कर सकूं ssh myserverऔर यह सही उपयोगकर्ता नाम, पोर्ट, होस्टनाम, पहचान फ़ाइल आदि प्रदान करेगा।

हालाँकि, कई सर्वरों के लिए, पहली बात यह है कि मैं su -रूट के रूप में लॉग इन करता हूं । मैं कमांड लाइन पर एक कमांड में यह सब कर सकता हूं जैसे ssh myserver -t su -:। क्या कोई ऐसी चीज़ है जो मैं अपनी ~/.ssh/configफ़ाइल में जोड़ सकता हूँ जो मेरे लिए क्या करेगी? मैं ऐसा करने में सक्षम होना चाहता हूं ssh myserver-rootऔर यह उसी के अनुरूप काम करेगा ssh myserver -t su -?

मुझे पता है PermitRootLogin, कि इस सर्वर के लिए बंद है, और मैं इसे चालू करने के लिए अनिच्छुक हूं। अगर ग्राहक के पक्ष में ssh का उपयोग करने का कोई तरीका है तो मैं बहुत कुछ देखूंगा।

जवाबों:


10

मुझे लगता है कि मैं इसे अन्य दिशा से ले जाऊंगा - अपने ~ / .ssh / अधिकृत_की फ़ाइल को सार्वजनिक सर्वर पर दूरस्थ कमांड पर 'कमांड =' का उपयोग करके, अपने "सु -" कमांड को चलाने के लिए।

तब बस अपने ~ / .shsh / config फ़ाइल (IdentityFile विकल्प) में निजी कुंजी का उपयोग करें / हर होस्ट / उपनाम ("myserver-root") के लिए आप इस तरह से काम करना चाहते हैं।

अधिकृत_की (5) में उपलब्ध विकल्प sshd (8) में प्रलेखित हैं।


हां, वही करता है जो मैं चाहता हूं। :) मैं सर्वर पर ~ / .sh / अधिकृत_की फ़ाइल पर पूर्ण नियंत्रण रखता हूं और इसे बदलने में कोई समस्या नहीं है।
रोरी

8

ल्यूक, शक्ति का प्रयोग करो!

वांछित मेजबान के लिए RequestTTY forceअपने में उपयोग करें ~/.ssh/config

btw। इसकी चर्चा यहाँ भी की जाती है /unix/27713/ssh-config-way-to-spectify-pseudo-tty-allocation-and-command-execution-for-sc/294468#294468


मेरा मानना ​​है कि यह मूल प्रश्न का बेहतर उत्तर है
जॉन क्लियान

3

अपने मार्ग में एक dir में स्क्रिप्ट क्यों न जोड़ें (या इसके लिए एक उपनाम) जिसे rshsh कहा जाता है:

#!/bin/bash
ssh $1 -t 'su -'

तो यह सिर्फ:

rssh myServer

1

मुझे ओपनएसएसएच स्रोत में छद्म ट्टी आवंटन के लिए कोई भी विन्यास विकल्प नहीं मिला।

लेकिन मैं PermitRootLogin के बारे में एक टिप दे सकता हूं, इसे इसे सेट करें:

PermitRootLogin without-password

और केवल ssh- कीज़ के साथ रूट लॉगिन की अनुमति दें।


1

सर्वर साइड पर ~ / .bashrc में ऐसा कुछ जोड़ने के बारे में कैसे?

if [ "$SSH_TTY" != "" ]; then su -; logout; fi

1

सबसे अच्छा जवाब शायद rkthkr और jrg का एक संयोजन है । PermitRootLoginकुंजी की आवश्यकता के लिए उपयोग करें , फिर कुंजी को commandरूट की अधिकृत_की फ़ाइल में कुंजी के साथ रखें ।

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