Soru Bağlantısı kesilmiş bir ssh oturumuna nasıl bağlanır


Bağlantısı kesilmiş bir ssh oturumuna bağlanmak için bir yolu var mı? Ağ bağlantımızla, üzerinde çalıştığımız uzak bir siteye problemler yaşıyoruz; Ancak, bu arada, uzak konumdaki sunuculara bağlıyken kayıp paketler nedeniyle çok sayıda bağlantı kopması yaşadık. Çoğu kez oturum bir süre aktif kalır ve bazen mümkünse yeniden başlatmak yerine geri dönmem gereken bazı eylemlerin (dosya düzenleme, işlem yapma, vb.) Ortasında olur.


141
2018-06-04 13:04


Menşei


Kimsenin bahsetmediğine inanamıyorum mosh.mit.edu - jwbensley
@javano: Bunu hiç duymadım. Bunu cevap olarak ekle! - kbyrd
Kbyrd Yaptık;) - jwbensley
benzer bir soru soruldu unix.stackexchange.com/questions/105001/... ilk etapta kopuklukların etrafında nasıl çalışılacağı hakkında bazı ipuçları ile ... - anarcat


Cevaplar:


GÜNCELLEME: Gerçek bir cevap için, sıfır_r'ın cevabını aşağıya bakın

Bu bir cevap değil, bir çözüm. kullanım ekran.

İlk giriş yaptığınızda, ekranı çalıştırın. Başka bir kabuk alırsın, komutları çalıştır. Bağlantı kesildiyse, ekran işlemi uçbirimi canlı tutar, böylece kabuğunuz ve çalıştığı işlemler düşmez. Tekrar bağlandığınızda, devam etmek için 'screen -r' komutunu çalıştırın.

Ekranı yapılandırmak ve kullanmak için bir grup daha var, ancak yukarıda sorununuzu çözmeniz gerekiyor.


126
2018-06-04 13:08



Veya tmux - bir 'cooler' ekranı kullanın, ikisini de çok kullandım ve tmux'u çok tercih ederim çünkü teriminizi güzelce bölebilirsiniz. - John Hunt
Bulmaktan mutlu oldum screen Ubuntu 12.x'e zaten yüklenmişti, bu yüzden sadece bu komutu denemediğinizden emin değilseniz, yeniden bağladı ve do-salım yükseltme süreç: sudo ekran -D -r - bjm88
@ Bjm88, sudo Sadece orijinal ekran oturumu sudo ile başlatılmışsa kullanılmalıdır. Aksi takdirde, ekran oturumu yokmuş gibi döner. There is no screen to be detached - Noam Manos


ClientAliveInterval (ör. 60) ve TCPKeepAlive (evet veya hayır), sshd.conf sunucu tarafındaki uygun değerlere ayarlamayı deneyin.

Bağlantı dakikalarca kaybolsa bile oturumunuzu canlı tutmalıdır.


118
2018-06-04 13:08



Şimdiye kadar, bir çözüm olarak ekran önermek yerine soruyu cevaplayan tek kişi sizsiniz. - kbyrd
İyi arama. Bu yöntemi, varsayılan olarak tcp bağlantılarını zaman aşımına uğratmak isteyen cisco ASA / PIX güvenlik duvarlarını geçerken kullanışlıdır. - Mike Pountney
Belki bu sorulması gereken doğru yer değil, ancak posterin cevapları değiştirmesi mümkün mü? 'Ekran' cevabı (benimki en iyisi değil, Mike Pountney'den hoşlanıyorum ama bu bilgiyi aldım) bu bilgi ile yapmalıyız. - kbyrd
Bu, bir Cisco VPN bağlantısı üzerinden bağlandığında çalışır ve VPN bağlantısı kaybolur ve yeniden kurulur mu? - Brent
Benim için ekran mükemmel çalışıyor, ekranlı göreve ve işe saymaya yeniden bağlanabiliyorum - integratorIT


Yukarıda da belirtildiği gibi, GNU Ekranı gitmenin yolu. Birden fazla 'komut penceresi' ile birden fazla komutu çalıştırabileceğiniz uzak kutuda 'ekran oturumu' olmasını sağlar. Bu, ana SSH bağlantınız ölürse, tüm alt süreçlerin kendi içinde ve iyi durumda kalmasını sağlayarak ayrılacak.

'man screen'her zamanki gibi arkadaşın ve işletim sistemi paketi çağrılmalı'screen'varsayılan olarak yüklenmemişse.

Temelleri:

  • Bir ekran oturumu başlatın (uzaktaki ana makinede):

    $ screen
    
  • Ekran oturumunuzdan bağlantıyı kes: CTRL-A, d

  • Tekrar giriş yaptıktan sonra ekran oturumunuza tekrar bağlanın:

    $ screen -d -r
    
  • Başka bir pencere aç: CTRL-A, c

  • Size açık ekran pencereleri arasında geçiş yapın: CTRL-A, uzay

Var çok Ekran ile yapabileceğiniz güzel şeyler. On yıldan beri kullanıyorum ve hala yeni özellikler buluyorum. Bu benim en sevdiğim Unix yardımcı programı.


59
2018-06-04 13:19



Evet, bu benimkinden çok daha iyi bir cevap. - kbyrd
Ekranın çalıştığı pc'yi yeniden başlatırsam bağlantısız ssh oturumuna hala bağlanabilir miyim? - BarathVutukuri


Kimsenin bahsetmediğine inanamıyorum MOSH;

Mosh, SSH giriş sürecine girebilen ayrı bir protokoldür, bağlantı kesilmesinden, IP değiştirilmesinden, yüksek gecikme ve benzeri işlemlerden sonra oturumunuzu canlı tutar. Ana sayfada açıklayabildiğimden daha iyi açıklanmakta, bu yüzden aşağıdaki açıklamayı kopyalamıştım. Deneyimlerim ve tavsiyem Android mobil cihazımda kullanıyorum, seyahat ederken ve SSH'ing'te hayat kurtarıcı. Aynısı, trende cep telefonu ile bağlantı kurulduğunda dizüstü bilgisayarımda da geçerlidir. En son sürümü almak için kaynak derlemeyi öneririm, Ubuntu içinde benim için repo sürümünde, en yeni sürümde (yazı yazıldığı sırada) sabitlenen birkaç can sıkıntısı var.

Mosh (mobil kabuk)

Dolaşım sağlayan uzak terminal uygulaması, aralıklı destekler   bağlantı ve akıllı yerel eko ve satır düzenleme sağlar   kullanıcı tuş vuruşları.

Mosh SSH'nin yerini aldı. Daha sağlam ve duyarlı.   Özellikle Wi-Fi, hücresel ve uzun mesafe bağlantılar üzerinden.

Mosh, GNU / Linux, FreeBSD, Solaris, Mac için ücretsiz bir yazılımdır.   OS X ve Android.

Web sitesinden özellikler:

  • IP değiştir. Bağlı kalın: Mosh, hareket ettikçe otomatik olarak dolaşıyor İnternet bağlantıları arasında. Wi-Fi'yi trende, Ethernet’te bir plajda otel ve LTE: giriş yapmış olursunuz. SSH ve Web de dahil olmak üzere, programlar dolaşımdan sonra bağlantılarını kaybeder Gmail gibi uygulamalar. Mosh farklıdır.

  • Tatlı rüyalar yapar: Mosh ile dizüstü bilgisayarınızı uyuyabilir ve daha sonra uyandırabilirsiniz. bağlantı bozulmamış. İnternet bağlantınız düşerse, Mosh sizi uyarır - ama Ağ hizmeti geri geldiğinde bağlantı devam eder.

  • Ağdan kurtulma gecikmesi: SSH, kendi yazmanızı göstermeden önce sunucunun yanıtını bekler. Bu için yapabilir berbat kullanıcı arayüzü. Mosh farklı: Yazmaya anında cevap veriyor, silme ve satır düzenleme. Bunu uyumlu bir şekilde yapar ve tam ekranda bile çalışır Emacs ve vim gibi programlar. Kötü bir bağlantıda, olağanüstü tahminlerin altı çizilir böylece yanlış yönlendirilmeyeceksin.

  • Ayrıcalıklı kod yok. Daemon yok: Mosh'i kurmak veya çalıştırmak için süper kullanıcı olmanıza gerek yok. İstemci ve sunucu sıradan bir kullanıcı tarafından çalıştırılan ve yalnızca bağlantının ömrü için çalıştırılan yürütülebilirler.

  • Aynı giriş yöntemi: Mosh ağ bağlantı noktalarını dinlemiyor veya kullanıcıları doğrulamıyor. Moss müşterisi giriş yapar SSH üzerinden sunucu ve kullanıcılar aynı kimlik bilgilerini (ör. şifre, genel anahtar) sunar eskisi gibi. Sonra Mosh, mosh-sunucuyu uzaktan çalıştırır ve UDP üzerinden bağlar.

  • Terminalinizin içinde çalışır, ancak daha iyi: Mosh ssh gibi bir komut satırı programıdır. Xterm, gnome-terminalinde kullanabilirsiniz. urxvt, Terminal.app, iTerm, emacs, ekran veya tmux. Ama mosh sıfırdan tasarlanmıştı ve sadece bir karakter kümesini destekler: UTF-8. Diğer terminallerdeki Unicode hatalarını giderir ve SSH'de.

  • Control-C harika çalışıyor: SSH’nin aksine, UHD’nin UDP tabanlı protokolü paket kaybını hassas bir şekilde ele alıyor ve çerçeveyi ayarlıyor şebeke koşullarına göre oran. Mosh ağ arabelleklerini doldurmuyor, bu yüzden Control-C
    her zaman kaçak bir süreci durdurmak için çalışır.


41
2017-11-24 13:01



Mosh bir ssh sarıcısı değil - ssh ile neredeyse tamamen alakasız farklı bir protokol, (sadece giriş için ssh kullanır). - jch
+1 Çok doğru, benim hatam. - jwbensley
Güvenlikten ne haber, ortadaki adam? şifreleme? anahtar değişimi? - Nasir Iqbal


autossh Bağlantınızı izler ve düşerse tekrar bağlanır. Kalıcılardan daha güvenilirdir. Bir ekran oturumuna bağlanırsanız, bağlantınızın kesildiği yerden devam edersiniz (bkz. rscreen autossh ile birlikte gelir


19
2018-06-06 09:11



Yapılandırılabilir bir canlılık dışında, bir oturuma (OP'nin aradığı şey) yeniden bağlanmanıza doğal olarak izin vermez. ancak ssh tünelleri, bağlantı noktası eşlemesi vb. gerektiren uygulamalar için autossh gerçekten yararlı olabilir. - ives
Evet autossh + ekran tatlı nokta olurdu. autossh var rscreenbunun için. - hayalci
Autossh, yosundan daha iyidir. İkisini de kullandım. - Sridhar-Sarnobat
İşte hakkında bir blog yazısı Jesse Keating, kullanarak hakkında ekranlı autossh. - sampablokuper


Sorununuzu düzeltmek için ekran yükleyip kurarım. Ekran, önceki ekran oturumuna yeniden bağlanmanızı sağlayacaktır.

Bunun dışında, ekran ayrıca ekranınızı bölme, konsolu görüntüleme gibi harika şeyler de yapabilirsiniz. Daha fazla bilgi edinebilirsiniz. İşte ve İşte.

Yeni başlayanlar için, bağlantınız kesilirse kullanabilirsiniz

screen -ls

seanslarınızı ve

screen -r ${session} 

bağlantısı kesilmiş olana yeniden bağlanmak için.


9
2018-06-04 13:06





tmux

Bu bir klasik. Bir terminale bağlantıyı kaybetme riskini her çalıştırdığınızda kullanın.

$ tmux
$ sh do_something_that_takes_forever

!! Connection fails so you reconnect once you notice

$ tmux ls
0: 1 windows (created Tue Aug 23 12:39:52 2011) [103x30]

$ tmux attach -t 0

Aynen öyle, eyleme geri döndün.


9
2018-04-06 01:24



Teşekkürler bir ton! Bunu tmux ile nasıl yapacağımı arıyordum, çünkü çoğu insanın daha iyi bir seçenek olarak gördüğü gibi görünüyor. - CoolOppo


Başkalarının da işaret ettiği gibi, ekran genellikle bunun için en iyi çözümdür ve bir dizi başka kullanışlı özellik de ekler.

Oturum açmayı otomatik olarak başlatmak ve / veya yeniden bağlanmak için profilinizi uzak makineye kurabilirsiniz; bu da, bir bağlantı damlalığından muzdarip olduğun için, ihtiyacın olan bir zamanda ekranı başlatmayı unuttuğunuzdan tasarruf etmenizi sağlar.

Görmek http://tlug.dnho.net/?q=node/239 (ya da Google’da arama yapın, diğer birçok örnek için biraz farklı yollarla bağış yapın).


3
2018-06-04 13:47



Bu linkte güzel senaryo, teşekkürler! - palehorse