ControlMaster SSH oturumuna program aracılığıyla bağlantı noktası yönlendirme ekleme


10

Birden fazla terminal çalıştırmak için tek bir SSH bağlantısı kullanmanızı sağlayan OpenSSH'nin ControlMaster / ControlPath özelliğini öğrendim.

Şifrelenmiş ve kimliği doğrulanmış VNC oturumları almak için bağlantı noktası yönlendirmeyi kullanmak için sık sık SSH kullandığım için, önceden kurulmuş bir bağlantınız olan uzak bir sunucuya bağlantı noktası yönlendirmeleri ekleyemeyeceğinizi hemen anladım. Bu berbat.

Bazen daha sonra, çalışan bir SSH terminal oturumunda ~ C yazarak bu sınırlamayı aşabileceğinizi öğrendim. Bu, bağlantı noktası yönlendirmeleri eklemenizi veya kaldırmanızı sağlayan bir komut satırı açar.

Şimdi sorduğum soru: ControlMaster / ControlPath özelliğini kullanan varolan bir SSH oturumuna, bu SSH oturumunun içindeki bir terminal oturumuna erişmeye gerek kalmadan bağlantı noktası iletmelerini nasıl ekleyebilirim. Bunu eklemek ve daha sonra onun bağlantı noktası iletilerini kaldırmak için güvenli bir tünel VNC bağlantısı başlatır benim komut dosyası etkinleştirmek için bu gerekir.

(GNU Screen veya tmux gibi bir terminal çoklayıcı kullanabileceğimi biliyorum, aslında bunu zaten yapıyorum. Ancak servis amaçlı olarak sadece bir SSH oturumu kullanma fikrini seviyorum.)


1
Bunu yapmanın bir yolunu bulup bulamayacağınızı görmekle iç içe olacağım, ama yapmayacağınızdan şüpheleniyorum. Programın bir parçası olmadığınız bir SSH oturumunun özelliklerini programlı olarak kontrol etmek büyük bir güvenlik sorunu gibi görünüyor.
Caleb

1
Saçmalık! Bir SSH oturumunun özelliklerini programlı olarak denetlemek büyük bir güvenlik sorununu nasıl beraberinde getirir? Çözüm gerçekten oldukça basit: serverfault.com/a/340361/93109
aculich

Soru şimdi sadece port yönlendirme eklemeyi soruyor, bu yüzden kabul edilen cevapla daha iyi eşleşiyor. Daha sonra bunları nasıl kaldıracağım hakkında bir soru sordum: serverfault.com/q/457295/50950
aef

Yanıtlar:


10

Aslında bu oldukça basit. -O forwardMevcut komutunuza ctl_cmd'yi eklemeniz yeterlidir , böylece:

ssh -M -L5555:localhost:22 remotehost

dönüşür:

ssh -O forward -M -L5555:localhost:22 remotehost

sshAdam sayfa tartışır -O ctl_cmdseçeneği:

-O ctl_cmd
        Control an active connection multiplexing master process.  When the -O option is
        specified, the ctl_cmd argument is interpreted and passed to the master process.
        Valid commands are: “check” (check that the master process is running), “forward”
        (request forwardings without command execution), “exit” (request the master to
        exit), and “stop” (request the master to stop accepting further multiplexing
        requests).

Bu, elbette, ya etkinleştirdikten varsayar ControlMaster yessenin içinde ~/ssh/configdosya veya -Mkomut satırında.


1
Lütfen ilgili soruyu burada yanıtlamaya çalışabilir misiniz: serverfault.com/q/457295/50950
aef
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.