Uzak makineye tmux oturumu ekleme


31

Yerel makinemde tmux kullanıyorum ve aynı anda birkaç seansım oluyor.

Genelde yaptığım, yerel olarak çalışmak için farklı pencereler içeren bir oturumum ve oturum sırasında birkaç pencereyi bağladığım diğer oturumlarım.

Bir oturum / pencere ağacı, tmux'u kullandığım günlük kullanımda şöyle görünür:

(TMUX on my local machine)
 |
 +- session 1: local
 |  \_ window 1: local shell
 |  \_ window 2: local shell
 |  \_ ...
 |
 + session 2: somehost
 |  \_ window1: ssh user@somehost
 |  \_ window2: ssh user@somehost
 |  \_ ...
 |
 + session 3: someotherhost
    \_ window1: ssh user@someotherhost
    \_ window2: ssh user@someotherhost
    \_ ...

2. ve 2. seansı, bir ana bilgisayarda & başka bir bilgisayarda oluşturulan bir tmux oturumuna bağlanan bir tür uzak oturumlar yapmanın bir yolu var mı?

Yukarıdaki ağaç şöyle görünür:

(TMUX on my local machine)
 |
 +- session 1: local
 |  \_ window 1: local shell
 |  \_ window 2: local shell
 |  \_ ...
 |
 + session 2 linked to an existing session on somehost
 |  \_ window1: shell on somehost
 |  \_ window2: shell on somehost
 |  \_ ...
 |
 + session 3 linked to an existing session on someotherhost
    \_ window1: shell on someotherhost
    \_ window2: shell on someotherhost
    \_ ...

Bu konuyu buldum ama ne yapmak istediğimden emin değilim: Ana bilgisayarlar arasında bir tmux soketi paylaşmak mümkün mü?

Sanırım aradığım şey, yerel makinemde, bir ana makinede ve bir başkasında aynı tmux yapılandırmasını yapmamı gerektiriyor ama bu bir sorun olmazdı.


Bunun için bir geçici çözüm buldun mu? Ben yerel gibi yönetebileceğiniz bir uzaktan oturumu olan düşünüyorum harika bir fikir, ancak en yüksek cevabı olarak gibi görünüyor yok aslında soru
mbigras

Yanıtlar:


18

Uzak bir ana bilgisayara bağlanırken ssh komutunu iletebilirsiniz. Uzak tmux oturumuna bağlanma -tseçeneğini ekleyin tmux attach-session:

ssh <remote host> -t tmux attach-session

Bir sms oturumuna ssh ile bağlanma hakkındaki bu yazı daha ayrıntılı olarak açıklanmaktadır.


18
Bu sadece size yuvalanmış bir oturum vermiyor mu? OP'nin yapmaya çalıştığı şeyin, uzak oturumun yerel oturumunun yanında görünmesini sağlamak olduğuna inanıyorum;
stsquad

Uzak ana bilgisayara bağlı birden fazla oturum varsa, şunları kullanabilirsiniz: ssh <uzak ana bilgisayar> -t tmux a -t <session-name>
user1757247

Karşılaştığım bir sorunu ve adım adım düzeltmek için bazı düzenlemeler yaptım. Umarım akran değerlendirmesi yakında bitecek. Bu çalıştı ssh <remote host> -t /path/to/tmux a -t <my-session-name>, ekstra bir ihtiyaç-t
Merlin

OP ile aynı sorum var. Bu sorumu cevaplamıyor. Bu oturuma göndermek istediğim tüm tmux komutlarını iki kez kaçmak zorunda kaldığım iç içe geçmiş bir tmux oturumu oluşturur. Uzak oturumun, yerel bir oturum gibi, oturum listemde göründüğü bir şey istiyorum.
Omnifarious

2

Asıl sorununuz, ssh remotehostyeni pencereyi her açışınızda yazmanız gerekecekse , default-commandoturum seçeneği geçici bir çözüm olabilir.

Ayarladığınız oturumlarda yeni pencereler açtığınızda belirlediğiniz komutu otomatik olarak çalıştırır.

Basit bir ayar .tmux.conf:

bind-key C-r new-session ssh remotehost \; set-option default-command "ssh remotehost"

Bu anahtar bağlama Ctrl-r, yeni açılan her pencerenin öncelikle ssh remotehostsizin adınıza çalıştırıldığı yeni bir oturum oluşturur .

Oturum oluşturma sırasında aşağıdaki ayarlara bağlanmak için ana bilgisayarları seçebilirsiniz:

bind-key C-r command-prompt "new-session -s %1 ssh %1 \; set-option default-command \"ssh %1\""

Bu, size sshher oturum oluşturmada yapmak istediğiniz ana bilgisayarı sorar (her pencere oluşturmada değil) ve o ana bilgisayara atanan oturumu başlatır.

sshSsh config'inizde SSH çoğullamayı etkinleştirirseniz, çoğunun çalıştırılması çok az zaman alır . .ssh/configÖrnek aşağıdaki gibidir:

Host remotehost
    ControlMaster auto
    ControlPath ~/.ssh/mux-%r@%h:%p
    ControlPersist 10

Bu tmux ayarının uzak ana bilgisayarlarda tmux oturumu oluşturmadığını unutmayın. Eğer ssh bağlantısı koparsa, etkilenen tmux pencereler asla geri gelmez.


1

Tmux tarafından kullanılan unix alan soketini yerel makinenize tünellemek için socat gibi bir araç kullanabilirsiniz. Ama sen gerçekten sadece başka bir (socat) için bir tünel (ssh) takas ediyorsun, bu yüzden gerçekten daha iyi değil ve aynı zamanda güvensiz.


Belki tünel socatiçinden ssh? N
Omnifarious

Bu noktada tmateuzaktan tmux kullanım için en iyi araç olabilir
untore

0

Uzak kabuktan bahsediyorsanız, orada komutları çalıştırabileceğiniz anlamına gelir, başka bir deyişle, doğrudan erişiminiz vardır. Bu durumda ssh, her uzak pencere için bağlantıyı kullanabilirsiniz .

Orada şöyle bir şey söyleyebilirsin:

"Hey, ama her uzak sunucu için birden fazla pencereye sahip olmanın yolu yok!"

ve ssh kısıtlamaları nedeniyle doğrudur. Ancak, her bir veya uzak sunucunuzda tmux oturumu başlatabilirsiniz. NOT: Bu durumda Ctrl+b, çarpışmaları önlemek için yerel makinede varsayılan ayarları yeniden yapmanız gerekir .

Ayrıca, kullanmanızı tavsiye ederim tmuxinator, en azından her gün tmux seansınızı yeniden düzenlerseniz çok yararlı bir araçtır.

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.