रिमोट सर्वर, iTerm2, और tmux एकीकरण


30

मैं एक दूरस्थ सर्वर पर tmux सत्र शुरू करने में सक्षम होना चाहता हूं, और फिर iTerm2 की मूल विंडो और स्थानीय मशीन पर स्क्रीन को विभाजित करने का उपयोग करता हूं।

उदाहरण के लिए, मान लें कि मेरे रिमोट सर्वर में एक विंडो के साथ चलने वाला tmux सेशन है जिसमें दो पैन हैं। मेरे स्थानीय मशीन पर iTerm2 में, मुझे दो देशी iTerm2 पैन चाहिए, जैसे कि प्रत्येक फलक में एक अलग tmux फलक होता है।

क्या यह संभव है?

(मुझे पता है कि रिवर्स संभव है - जिससे मैं अपने स्थानीय मशीन पर एक tmux सत्र चला सकता हूं और दूसरी मशीन उदाहरण के लिए विंडोज़ के रूप में मेरे iTerm2 टैब को देखेगा। लेकिन यह एक तरह से बेकार लगता है।)

जवाबों:


40

हाँ यह संभव है, जूट सुनिश्चित करें:

  • दूरस्थ रूप से स्थापित tmux का नवीनतम संस्करण है
  • Iterm2 के सबसे हाल के संस्करण को स्थानीय स्तर पर स्थापित किया है

लॉगिन ssh login@hostname -t 'tmux -CC'और वॉइलिए के माध्यम से लॉग इन करें - यह आपके स्थानीय बॉक्स पर iTerm2 विंडो खोलना चाहिए जिसे दूरस्थ बॉक्स में लॉग इन किया गया है।


5
यह भी उपयोग करने के लिए फिर से कनेक्ट करने के लिए मत भूलना ssh login@hostname -t 'tmux -CC attach'और iterm2 में खोल-> tmux-> डैशबोर्ड मेनू देखें।
therealmarv

1
हे, क्या तुम लोग जानते हो कि इसे ssh के बजाय mosh के साथ कैसे करना है? संपादित करें: यह संभव नहीं है: github.com/mobile-shell/mosh/issues/640
fane89

1
यदि आप किसी विशिष्ट सत्र से जुड़ना और संलग्न करना चाहते हैं, तो आप निम्नलिखित का उपयोग कर सकते हैं:ssh login@hostname -t 'tmux -CC a -t sessionName'
जेरेमी इगलहार्ट

किसी भी तरह से यह ऑटो के साथ काम करने का मौका या किसी तरह से यह डिस्कनेक्ट का विरोध?
इगोर

4

2015-12-16 तक स्थिर रिलीज़ संस्करणों के साथ यहां मेरे लिए काम किया गया है, जो ओएस एक्स 10.11.2 पर iTerm 2.1.4 और रास्पियन लिनक्स पर tmux 1.9 हैं:

  1. रिमोट सिस्टम पर पासवर्ड-कम लॉगिन को कॉन्फ़िगर करने के लिए .ssh/configअपनी स्थानीय मशीन और .ssh/authorized_keysअपने रिमोट मशीन पर पहले उपयोग करें । एक बार जब यह ठीक से कॉन्फ़िगर हो जाता है, तो आपको केवल ssh pi( piअपने दूरस्थ सिस्टम का होस्ट नाम है) को दबाकर लॉगिन करने में सक्षम होना चाहिए ।

  2. एक नया iTerm2 प्रोफ़ाइल जो, बजाय अपने स्थानीय खोल के लिए एक लॉगिन करने के लिए, केवल कॉल बनाएं ssh piरिमोट मशीन के लिए लॉग इन करने के लिए। इसे कॉन्फ़िगर करने के लिए, प्राथमिकताएँ: प्राथमिकताएँ / प्रोफ़ाइल / + / कमांड। कोमांड = "ssh pi"

  3. अपने नए प्रोफ़ाइल के माध्यम से दूरस्थ मशीन के लिए एक iTerm2 विंडो खोलें, ऐसा करके: प्रोफ़ाइल / पाई।

  4. कमांड लाइन पर iTerm2 रिमोट लॉगिन विंडो में tmux -CC:। इसके बाद आपकी iTerm2 विंडो tmux कमांड मोड दिखाती है, tmux एक नया सत्र बनाता है, और iTerm2 तुरंत उस tuxux सत्र के लिए एक नई iTerm2 विंडो बनाता है। उस नए iTerm2 विंडो के भीतर, प्रारंभिक iTerm2 टैब उस सत्र की एकल tmux विंडो का प्रतिनिधित्व करता है । यदि आप CMD-T करते हैं, तो यह एक नया iTerm2 टैब बनाएगा, एक नई tmux विंडो का प्रतिनिधित्व करेगा।

आप इसका उपयोग कैसे करते हैं?

  • इस बिंदु पर आप कर सकते हैं "शैल / tmux / डैशबोर्ड" मौजूदा tmux सत्र और खिड़कियों की iTerm2 की समझ का निरीक्षण करने के लिए।

  • यदि आप tmux सत्र का प्रतिनिधित्व करने वाले iTerm2 विंडो को बंद करते हैं, तो यह अंतर्निहित सत्र को मारता है और यह सब tmux विंडोज़ है।

  • यदि आप tmux कमांड मोड दिखाते हुए iTerm2 विंडो को बंद करते हैं, तो यह सिर्फ tmux क्लाइंट उदाहरण को मारता है जो उस सत्र से जुड़ा था, इसलिए आपकी iTerm2 विंडो दोनों गायब हो जाती हैं, लेकिन tmux सत्र अभी भी जीवित है और आप इसे पुनः संलग्न कर सकते हैं यह।

  • यदि आप tmux से अधिक क्रमिक रूप से अलग करना चाहते हैं, तो बस ESCtmux कमांड मोड विंडो के भीतर करें।

  • यदि एक नया tmux सेशन बनाने के बजाय, जो आप मूल रूप से एक मौजूदा सत्र से जोड़ना चाहते थे, तो आप उसके साथ कर सकते हैं tmux -CC attach

सिद्धांत रूप में, मुझे लगता है कि iTerm2 या tmux को कॉन्फ़िगर करने का एक तरीका होना चाहिए ताकि जब आप दूरस्थ सिस्टम से कनेक्ट हों तो आप किसी भी मौजूदा tmux सत्र से स्वचालित रूप से संलग्न हों, लेकिन मैं कमांड लाइन को संशोधित करके काम करने में सक्षम नहीं था iTerm2 प्रोफाइल।


स्वचालित रूप से ssh लॉगिन पर चलने वाले tmux सत्र से कनेक्ट करने के लिए मैं [[ $- == *i* && $SSH_TTY && -z $TMUX && ! -r ~/.notmux ]] && tmux attach-session && exit.bashrc (या वहां से कॉल की गई चीज़) का उपयोग करता हूं : परीक्षण इस प्रकार हैं: इंटरेक्टिव शेल, ssh सत्र, पहले से ही tmux में नहीं चल रहा है, कोई आपात स्थिति नहीं है। फ़ाइल। exitअंत में tmux बाहर निकलने पर कनेक्शन (ज्यादातर मेरे लिए एक अलग करें) बंद कर देता है।
zany
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.