SSH bağlantılarını belirli bir 'ekran' oturumuyla otomatik olarak yeniden bağlama


10

Genellikle her biri ssh ile uzak bir sunucuya bağlanan birkaç terminal pencerem var. Her pencerede bir bağlantı kesilmesi durumunda etkileşimli işlemlerin sürekliliğini sağlamak için gnu ekran programını kullanarak çalışıyorum.

Şu anda, ssh bağlantısı düştüğünde (istemci bilgisayarımı bir gece uyku moduna geçirdiğimde) ssh oturumunu her pencerenin içinde manuel ve sıkıcı bir şekilde yeniden başlatmam ve ardından her pencerede belirli ekran oturumunu (ör. r 3453 "bir pencerede," ekran -r 3462 "diğer pencerede vb.)

Bunu otomatikleştirmenin zarif bir yolu var mı? özellikle:

  • İnternet bağlantısı algılanır algılanmaz ssh oturumunu yeniden bağlayın

  • ssh yeniden bağlanır bağlanmaz terminal penceresi için belirli bir ekran örneğini çalıştırın

Bu konuda herhangi bir ipucu için teşekkürler

Yanıtlar:


10

Bunu çalıştırmak için: ssh -t hostname screen -r 3453yeniden bağlanmak. Bir döngüde yapmak istiyorsanız, bir komut dosyasında aşağıdakileri kullanıyorum.

while true; do
    ssh -t -o BatchMode=yes eeepc-rsi "screen -r 3453"
    sleep 2
done

Şifreniz girmeden giriş yapabilmeniz için ssh-tuşları kurulumunuz varsa bu en iyi sonucu verir. Ayrıca, ekranın daha modern bir uygulaması olan tmux'a bakmanızı tavsiye ederim. Aslında ekran ile yukarıdaki komut dosyası kullanıyorum. Muhtemelen sadece örnekte yaptığınız gibi pid kullanmak yerine adlandırılmış bir ekran oturumu kullanmak istersiniz.


Teşekkürler! "-O BatchMode = yes" tam olarak ne için?
GJ.

Parola sormamanıza izin verir. 'Man ssh_config' kaynağından: "parola / parola sorgusu devre dışı bırakılacak. Bu seçenek, komut dosyası ve parola sağlamak için hiçbir kullanıcının bulunmadığı diğer toplu işlerde kullanışlıdır." Bu nedenle, yalnızca önceden ayarlanmış ssh tuşlarınız varsa kullanın.
Jason Axelson

5

Bash döngülerini hacklemeye gerek yok. Autossh'a bakmanız gerekiyor . Ben o kadar kendimi kullanmadıysanız, ama zihnimin sadece yerine geçmesidir sshile autosshsizin komuta.

Düzenleme: Aslında, autossh rscreentam olarak bu amaç için tasarlanmış gibi görünen bir komut dosyası ile birlikte gelir .

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.