Uzak sunucu, iTerm2 ve tmux entegrasyonu


30

Uzak bir sunucuda tmux oturumu başlatmak ve ardından yerel makinemde iTerm2'nin yerel pencerelerini ve bölünmüş ekranlarını kullanmak istiyorum.

Örneğin, uzak sunucumun iki bölmeli bir pencerede çalışan bir tmux oturumu olduğunu varsayalım. Yerel makinemdeki iTerm2'de, her bir bölmenin farklı bir tmux bölmesi içerecek şekilde iki yerel iTerm2 bölmesi istiyorum.

Mümkün mü?

(Tersinin mümkün olduğunu biliyorum - bu yüzden yerel makinemde tmux oturumu çalıştırabilirim ve başka bir makine iTerm2 sekmelerimi örneğin pencereler olarak görecek. Ancak bu işe yaramaz görünüyor.)

Yanıtlar:


40

Evet, mümkün olduğundan emin olun:

  • Tmux’un en son sürümünün uzaktan kurulmasını sağlamak
  • İterm2'nin en yeni sürümünü yerel olarak yüklediyseniz

Aracılığıyla Girişi ssh login@hostname -t 'tmux -CC've voilà - Bu yerel kutuyu iTerm2 penceresini açmalıdır uzak kutuya kaydedilir.


5
Ayrıca ssh login@hostname -t 'tmux -CC attach'iterm2'deki shell-> tmux-> dashboard menüsünü kullanmak ve tekrar bakmak için yeniden bağlanmayı da unutmayın .
therealmarv

1
hey, ssh yerine mosh ile nasıl yapılacağını biliyor musunuz? düzenleme: mümkün değil: github.com/mobile-shell/mosh/issues/640
fane89

1
Belirli bir oturuma bağlanmak ve eklemek istiyorsanız, aşağıdakileri kullanabilirsiniz:ssh login@hostname -t 'tmux -CC a -t sessionName'
Jeremy Iglehart

autossh ile çalışmasını sağlamak veya herhangi bir şekilde bağlantı kesilmelerine karşı koymak için herhangi bir şansınız var mı?
igor

4

İşte benim için işe yarayan, 2015-12-16'dan itibaren yayımlanan sürümlerle OS X 10.11.2'de iTerm 2.1.4 ve Raspbian Linux'ta tmux 1.9:

  1. İlk kullanım .ssh/configyerel makinenizde ve .ssh/authorized_keysuzak sisteme yapılandırmak şifre daha az giriş için uzak makinede. Bu doğru şekilde yapılandırıldıktan sonra, sadece giriş yaparak giriş yapabilmelisiniz ssh pi(farz edersek pi, uzaktaki sisteminizin ana bilgisayar adıdır).

  2. Yerel kabuğunuza giriş yapmak yerine yalnızca ssh piuzaktaki makineye giriş yapmak için arama yapan yeni bir iTerm2 profili oluşturun . Bunu yapılandırmak için, gidin: Preferences / Profiles / + / Command.Command = "ssh pi"

  3. Yeni makinanız üzerinden uzaktaki makineye bir iTerm2 penceresi açın, aşağıdakileri yaparak: Profiller / Pi.

  4. İTerm2 uzaktan oturum açma penceresinde, komut satırına yapın: tmux -CC. Bundan sonra iTerm2 pencereniz tmux komut modunu gösterir, tmux yeni bir oturum oluşturur ve iTerm2 bu tmux oturumu için hemen yeni bir iTerm2 penceresi oluşturur. Bu yeni iTerm2 penceresinde, ilk iTerm2 sekmesi o oturumun tek tmux penceresini temsil eder . CMD-T yaparsanız, bu yeni bir tmux penceresini temsil eden yeni bir iTerm2 sekmesi oluşturacaktır.

Bunu nasıl kullanıyorsunuz?

  • Bu noktada iTerm2'nin mevcut tmux oturumlarını ve pencerelerini anlamasını gözlemlemek için "Shell / tmux / Dashboard" işlemini yapabilirsiniz.

  • Eğer tmux oturumunu temsil eden iTerm2 penceresini kapatırsanız, altındaki oturumu ve tüm tmux pencerelerini öldürür.

  • Tmux komut modunu gösteren iTerm2 penceresini kapatırsanız, o zaman o oturuma bağlı olan tmux istemci örneğini öldürüyor gibi görünür; böylece hem iTerm2 pencereleriniz kaybolur, hem de tmux oturumu hala canlıdır ve tekrar bağlanabilirsiniz. o.

  • Eğer tmux'tan daha düzenli bir şekilde ayrılmak istiyorsanız, o zaman sadece ESCtmux komut modu penceresinden yapın.

  • Yeni bir tmux oturumu oluşturmak yerine, başlangıçta istediğin mevcut bir oturuma eklemek olsaydı, bunu yapabilirsin tmux -CC attach.

Teorik olarak, iTerm2 veya tmux'u konfigüre etmenin bir yolu olması gerektiğini düşünüyorum, böylece uzak sisteme bağlandığınızda mevcut herhangi bir tmux oturumuna otomatik olarak bağlanırsınız, ancak komut satırını değiştirerek çalışmasını sağlayamadım. iTerm2 profili.


Ssh girişinde çalışan bir tmux oturumuna otomatik olarak bağlanmak için [[ $- == *i* && $SSH_TTY && -z $TMUX && ! -r ~/.notmux ]] && tmux attach-session && exit.bashrc kullanıyorum (veya oradan aranan bir şey var) Testler şunlar içindir: etkileşimli kabuk, ssh oturumu, zaten tmux içinde çalışmıyor, acil durum dont-do-it-it yok dosya. exitSonunda tmux çıktıktan sonra bağlantı (beni çoğunlukla ayırmak) kapatır.
zany,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.