Ssh config फाइल में रिमोट कमांड


12

मैं ssh_config सेट करना चाहता हूं ताकि ssh my_hostnameविशिष्ट फ़ोल्डर में बस टाइप करने के बाद मैं समाप्त हो जाऊं । जैसे मैं टाइप करूँगा cd /folder/another_one/much_much_deeper/

मैं उसे कैसे प्राप्त कर सकता हूं?

संपादित करें। इसे "कैसे sir में dir ..." के डुप्लिकेट के रूप में चिह्नित किया गया है, फिर भी यह मेरा सवाल नहीं है

मुझे पता है कि मैं किसी भी कमांड को कमांड से जोड़कर निष्पादित कर सकता हूं ssh। मेरा प्रश्न /ssh_configफ़ाइल के बारे में है कमांड नहीं।


मैंने अपना प्रश्न स्पष्ट कर दिया है।
काज

उस बारे में कुछ नहीं है man ssh_config। निकटतम LocalCommand है, लेकिन यह इंटरैक्टिव कमांड के लिए इस्तेमाल नहीं किया जा सकता है।
lororget

1
कृपया आप (अपने प्रश्न में) समझा सकते हैं कि आपको ऐसा क्यों लगता है कि बदलाव होना चाहिए ssh_config? प्रारंभिक निर्देशिका को कॉन्फ़िगर करने के लिए संभवतः बेहतर स्थान हैं, और यह समझना उपयोगी होगा कि संभावित समाधान पर यह विशेष प्रतिबंध क्यों है।
रोजा

1
तथ्य "यह नहीं किया जा सकता है" यह "इसे ssh_configबाश में करो" का एक डुप्लिकेट नहीं बनाता है। "आप ऐसा नहीं कर सकते हैं" पूरी तरह से मान्य उत्तर है।
फ्रेंकलिन यू

1
@terdon हालांकि तथ्य "यह संभव नहीं है" समय के साथ बदल सकता है। हाँ, यह अब संभव है। अब मुझे (साथ ही भविष्य में इसे देखने आने वाले किसी व्यक्ति को) एक नए उत्तर की आवश्यकता है, और हम यहां फंस जाते हैं। यदि यह फिर से नहीं खोला जाता है, तो मैं कल्पना करता हूं कि वांछित पथ एक नया प्रश्न बनाने के लिए है (और इसका उत्तर दें)?
फ्रैंकलिन यू

जवाबों:


19

OpenSSH 7.6 तक, ऐसा करने का कोई तरीका नहीं था । से मैनुअल :

RemoteCommand

सर्वर से सफलतापूर्वक कनेक्ट होने के बाद रिमोट मशीन पर निष्पादित करने के लिए एक कमांड निर्दिष्ट करता है। कमांड स्ट्रिंग लाइन के अंत तक फैली हुई है, और उपयोगकर्ता के शेल के साथ निष्पादित की जाती है। TOKENS अनुभाग RemoteCommandमें वर्णित टोकन को स्वीकार करने के लिए तर्क ।

तो अब आपके पास हो सकता है

RemoteCommand cd /tmp && bash

इसे इस कमिट में पेश किया गया था ।


5
RequestTTY forceयदि दूरस्थ कमांड को TTY की आवश्यकता है, तो जोड़ें । उदाहरण के लिए:tmux new -As my-session
हारून ब्लशकुश

यह हत्यारा sshविकल्प है धन्यवाद!
3

इससे अन्य कमांड चलाना असंभव हो जाता है, उदाहरण के लिए ssh my_hostname lsअसफल हो जाएगा Cannot execute command-line and remote command.। यह अन्य टूल बनाता है जो ssh जैसे git और rsync का उपयोग करते हैं, वे भी विफल हो जाते हैं।
२०:४० बजे

2

मैं ssh_config सेट करना चाहूंगा ताकि ssh my_hostname टाइप करने के बाद

यह संभव नहीं है। उसको हासिल करने का कोई विकल्प नहीं है ssh_config। इसके सबसे नज़दीकी एक बैश उपनाम या बैश फ़ंक्शन सेट कर रहा है, जैसे कि

myssh() {
    ssh -t $1 "cd /dir/; bash"
}

1

मैंने एक अलग टिकट पर जवाब दिया इससे पहले कि सोमेन ने बताया था कि यह मूल था।

अगर मैक का उपयोग कर रहा है, तो मेरी सिफारिश iTerm2 का उपयोग करने और एक प्रोफ़ाइल बनाने की है। ssh my_hostnameकमांड लाइन में डालें , और फिर cd /folder/another_one/much_much_deeper/स्टार्ट फील्ड में सेंड टेक्स्ट में कमांड जोड़ें । जब आप सत्रों से जुड़ते हैं तो यह आपके होस्टनाम और सीडी को आपके मामले में निर्देशिका में भेज देगा, या एक कमांड निष्पादित करेगा।

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