छद्म ट्टी आवंटन और कमांड निष्पादन को निर्दिष्ट करने के लिए .ssh / config तरीका


13

क्या इसमें निर्दिष्ट करने के लिए कोई तरीका है, जैसे .ssh/config, एक कमांड:

ssh -t remote-host "screen -dR screen_name"

इसलिए मैं आसानी से दूरस्थ screenसत्र तक पहुंच सकता हूं ssh remote-host?

अभी मैंने एक कस्टम स्क्रिप्ट का उपयोग करके इस समस्या को हल किया है:

$ cat ~/bin/sssh 
#!/bin/sh

/usr/bin/ssh -t $1 "screen -dR ab"

~/binपहले रहता है $PATH, लेकिन यह अनमना और बदसूरत है।

इसके अलावा, मैं अपनी कस्टम स्क्रिप्ट के लिए मेजबान स्वतः पूर्णता को लागू करने का तरीका खोजना चाहूंगा।


मैं जगह लेंगे $1साथ $@। तब आप अधिक विकल्प जोड़ सकते हैं, न कि केवल होस्टनाम। पूरा करने के लिए, निष्पादन की कोशिश करें . /usr/share/bash-completion/completions/ssh, इसके बादcomplete -F _ssh sssh
एलेक्स स्ट्रैगीज़ जूल

जवाबों:


17

-tविकल्प के साथ जैसा आप चाहते हैं , उसे आवंटित करने के लिए , RequestTTY forcessh config फाइल (आमतौर पर ~/.ssh/config) में एक प्रविष्टि के रूप में डालें । कनेक्ट होने के बाद हमेशा सर्वर पर एक कमांड निष्पादित करने के लिए, RemoteCommand COMMANDप्रविष्टि में रखें, जहां COMMANDआप कनेक्शन पर चलाना चाहते हैं वह कमांड है। अन्य विकल्पों के लिए, जाँच करें man ssh_config

Host remote-host
    Hostname my.server.com
    User imauser
    IdentityFile /path/to/identity_file
    RequestTTY force
    RemoteCommand screen -dR screen_name


1

मेरा तर्क है कि यह सबसे लचीला तरीका है। एक स्क्रिप्ट आपको पैरामीटर सेट करने, सशर्त जोड़ने, आवश्यकतानुसार कमांड बदलने, सभी इनपुट के आधार पर अनुमति देती है।

कमांड में "बल" करने के तरीके हैं authorized_keys। लेकिन मुझे कमांड-लाइन को छोड़कर tty आवंटन को बाध्य करने या स्थानीय सर्वर कॉन्फ़िगरेशन फ़ाइलों से दूरस्थ सर्वर पर कमांड को बाध्य करने का एक तरीका नहीं पता है।

स्वयं, मेरे पास एक स्क्रिप्ट है जो कॉन्फ़िगर फ़ाइल को स्कैन करती है, विभिन्न डोमेन के साथ DNS के खिलाफ जांच करती है और टर्मिनल एमुलेटर का शीर्षक स्ट्रिंग सेट करती है। मैं इसे अपने स्थानीय सिस्टम ( Ctrl-a g) से स्क्रीन पर कॉल करता हूं ।


0

नोट: ओपनएसएसएच 7.6 केRemoteCommand साथ काम करना शुरू करता है । पहले के संस्करण (यानी वर्तमान डेबियन 9.9) में ssh क्लाइंट ठीक से काम करना बंद कर देगा (कम से कम )। git pull

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