Ssh -t ne zaman ssh yerine uygun olmaz?


15

Uzak sunuculara bağlantı ssh -tyerine kullanmanın sshbirçok avantajı vardır. Örneğin, doğrudan ssh -t host vim foo.txtbaşarısız olan vim: ile bir dosyayı düzenleyebilirim .

Ssh kullanırken (sözde) -tty ayırmanın kötü bir şey olacağı durumlar var mı?

Yanıtlar:


11

"Ssh anasistem komutu" nun tipik kullanımı olan girdiyi döşerken veya girişi geri alırken. Kontrol karakterleri TTY katmanı tarafından yorumlanabilir (örn. ^ S)


10

Evet, bazen sessiz, arka planlı bir bağlantı yapmak istersiniz, örneğin bir tünel kurarken (örn. SOCKS proxy). Bu örneklerde, işlemin bir tty'ye sahip OLMAMasını istersiniz.

Aşağıda, localhost'tan bazı uzak ana makinelere bağlantı noktası yönlendirmeyi ayarlama örneği ...

ssh -l username -fNTL 8073:server:873

Bu kurulduktan sonra, uzak ana bilgisayar yerine localhost'a rsync, dolayısıyla etkili bir şekilde, rsync'inizi ssh...

rsync --port=8073 -a me@localhost::myStuff /tmp/myStuff/

Bunu rsync'in dışarı çıkması serverengellenmiş, ama olmasa da söylerdiniz ssh.


Teşekkürler, bu da haklıydı, ama göz ardı ettiğim daha ciddi bir sorun olduğu için diğerine oy verdim.
Alex J

3

Yukarıdakilere ek olarak ...

(1) Farklı tilda kaçış taşıma:

"~." Eğer bir pty (-t) varsa escape bağlantısını keser. Uzun süren bir komut için, ~ yazıyorsa birinin işlemi yanlışlıkla durdurmasını önlemek isteyebilirsiniz.

$ ssh hostname.tomontime.com -t uyku 60
[tür ~. ve bağlantı kesiliyor]
hostname.tomontime.com bağlantısı kapatıldı.

$ ssh anamakine adı -T uyku 60
[ Yazarım ~. ve buna, uyku komutunun göz ardı ettiği normal tuş vuruşları gibi davranır.]
~.
~.

CTRL-C ile de aynı şeyi deneyin. -T ile CTRL-C'yi "uyku" ya gönderdiğinizi göreceksiniz. -T ile CTRL-C'yi makinenizde çalışan ssh programına gönderiyorsunuz. Bunun bir fark yarattığı zamanlar olabilir (yani program INT'yi HUP'tan farklı işler)

(2) Sadece pty veya ağ bağlantı etkinliğini en aza indirmek istiyorsunuz.

Pty'leri olmayan bir makineyi yeniden başlatmaya çalışırken, sistemi bir pty ayırmaya teşvik etmek istemezsiniz! Bu ayrıca kapatılması gereken ağ bağlantılarını da en aza indirir (yeniden başlatmayı geciktirir).

Bu daha hızlı ve daha güvenilir bir şekilde çalışır:
ssh -T ana bilgisayar adını yeniden başlatma

Bu sorun olabilir:
ssh -t ana bilgisayar adını yeniden başlatma


2

ssh -t uzak makinede sahte bir terminal oluşturur. Bu, birden fazla sunucuya ssh komutları bağlarsanız ve uzak tarafta gerçek bir terminal istiyorsanız (örneğin 'vi' kullanabilirsiniz).

Terminal varsa giriş komut dosyaları farklı davrandığında '-t' istemeyebilirsiniz. Bu kötü uygulama IMHO, ancak bir giriş komut dosyasının TTY'yi 1) istemi ayarlamadan ve 2) birçok etkileşimli uygulamaya giden yolu genişletmeden önce kontrol ettiği durumlar gördüm.

Başka bir örnekte (yukarıda TomOnTime tarafından belirtilmiştir), aslında tüm TTY'nin (ptys) tükendiği durumlarla karşılaştım. Açıkçası yanlış yapılandırma, ancak bir grup tünel ve rsync için bir kaynak çiğnemeye gerek yok.

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.