SSH'yi SOCKS 5 proxy ile nasıl kullanabilirim?


35

PuTTY aracılığıyla 7777 numaralı bağlantı noktasını dinamik bağlantı noktası olarak ayarlanmış bir SOCKS5 proxy sunucum var. Firefox / filezilla / etc komutunu, bir SOCKS proxy'si localhostve portu kullanacak şekilde yapılandırarak kullanabilirim 7777. Ancak, dinamik bağlantı noktasını kullanarak ssh (Cygwin aracılığıyla) uzak bir sunucuya nasıl yazacağımı çözemiyorum. Mümkün mü?

ProxyCommandAşağıdaki yöntem ile kullanmayı denedim .

  1. Oluşturmak ~/.ssh/configaşağıdaki satırla:

    ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7777 %h %p
    
  2. Ssh -p22 user @ remotehost komutunu çalıştırın

Aldığım mesaj ssh_exchange_identification: Connection closed by remote host


1
SOCKS'i desteklemeyen bir program yapmak için SOCKS üzerinden geçin, sözde bir proxifer kullanabilirsiniz; Bakınız en.wikipedia.org/wiki/Comparison_of_proxifiers . Özellikle, açık kaynaklı tun2socks proxifer'imi öneririm ( code.google.com/p/badvpn/wiki/tun2socks ).
Ambroz Bizjak

Ambroz yorumunuz için teşekkürler. Cygwin'de çalışmasına ihtiyacım var ve proksiferlerdeki wikipedia sayfasından, bahsettiği hepsinin ya cygwin'de uygulanmadığını ya da uygulanamadığını görüyorum. Bir proxifier’ın cygwin’de çalışması için bir yol var mı?

Özellikle Cygwin'i desteklemek için ihtiyacınız yok. Cygwin programları sonunda sadece Windows programlarında, ancak bir kütüphane olarak uygulanan bir POSIX arayüzü var. Bir proxifier Windows üzerinde çalışıyorsa, Cygwin programlarını iyi şekilde proksifiye edebilmelidir.
Ambroz Bizjak

Yanıtlar:


31

Proxy sürümünüz olarak HTTPS için 'connect' kullanıyorsunuz, bu adam nc:

-X proxy_version Proxy sunucusuyla konuşurken nc'nin belirtilen protokolü kullanmasını ister. Desteklenen protokoller '' 4 '' (SOCKS v.4), '' 5 '' (SOCKS v.5) ve 'connect' dir (HTTPS proxy). Protokol belirtilmezse, SOCKS sürüm 5 kullanılır.

Bu yüzden SOCKS 5 kullanmak için aşağıdakileri kullanmalısınız:

ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:7777 %h %p

Ya da sadece:

ProxyCommand /usr/bin/nc -x 127.0.0.1:7777 %h %p

Umut ediyorum bu yardım eder.


Sağol Saman, işe yaradı! Ayrıca, açıklama için teşekkürler, yardımcı olur.

Bu ProxyCommand, ~/.ssh/config', or else nested inside a specify Host'unuzun bölümünün ilk satırı olmalıdır . Neden olduğundan tam olarak emin değil. Bu son satırda işe yaramazsa~/.ssh/config
Aaron McDaid

@AaronMcDaid: Kimden man ssh_config: "Her parametre için, ilk elde edilen değer kullanılacaktır." Bu nedenle ... genel ayarların herhangi bir bölümden önce olması gerekir Host. Son satır ~/.ssh/configson Hostbölümün bir parçasıdır .
mpb

Bahsetmeye değer netcat /bin/ncDebian ve Ubuntu'da.
Lundberg Per

11
ssh -o ProxyCommand='nc --proxy-type socks4 --proxy 127.0.0.1:9050 %h %p' user@host

fc19 x86_64, Ncat: Sürüm 6.25


sadece meraklıyım - neden proxy-type socks4?
şüpheli

2
Bunun neden çözüm olduğunu söylemek için biraz daha açıklama ekleyebilir misiniz?
ChrisF

1
@ChrisF, kabul edilen çözümle aynıdır, ancak tek astarlıdır! Herhangi bir yapılandırma dosyasını değiştirmenize gerek yoktur.
j123b567

1
Bu Nmap ncat programı (aracılığıyla gelir apt install nmapfarklıdır, Ubuntu ve Debian gibi APT sistemlerde) netcat (o netcat'in-openbsd veya Hobbit adlı netcat'in-geleneksel).
Adam Katz

1
@Adam Katz yorumu ile ilgili @suspectus, proxy-typebunun socks4nedeni, nmap ncatprogramının yakın zamana kadar Sock5'i desteklememesiydi. Aslında, bu şimdi bile bir sorun (Kasım 2017), RHEL 7 / Centos 7 nmap paketine geçti ancak çorapları desteklemeyen eski bir yapı kullandı5
Randall

3

tsocks ( http://tsocks.sourceforge.net/ ), herhangi bir programın SOCKS proxy'sini şeffaf bir şekilde kullanmasını sağlamak için LD_PRELOAD kullanan güzel bir sarmalayıcıdır:

tsocks ssh example.com

Sadece çalışır, /etc/tsocks.conf içinde SOCKS proxy IP'yi yapılandırmayı unutmayın


bir yapılandırma dosyasına sahip olmak çok karmaşık
Jiang YD

1

Aşağıdaki komut sadece nc kullanmak için yapacaktır:

ssh examplehost.com -o "ProxyCommand=nc --proxy localhost:7000 %h %p"

Varsayılan HTTP proxy, 7000 numaralı bağlantı noktasında çalışan bir HTTP proxy var.

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.