SOCKS 5プロキシでSSHを使用するにはどうすればよいですか?


35

動的ポートとして構成されたポート7777で、PuTTYを介してSOCKS5プロキシをセットアップしています。firefox / filezilla / etcを使用するには、localhostおよびでSOCKSプロキシを使用するように設定します7777。しかし、動的ポートを使用してリモートサーバーに(Cygwinを介して)sshする方法はわかりません。これは可能ですか?

ProxyCommand次の方法で使用してみました。

  1. ~/.ssh/config次の行で作成します。

    ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7777 %h %p
    
  2. ssh -p22 user @ remotehostを実行します

私が受け取るメッセージは ssh_exchange_identification: Connection closed by remote host


1
SOCKSをサポートしていないプログラムがSOCKSを通過するようにするには、いわゆるプロキシーを使用できます。en.wikipedia.org/wiki/Comparison_of_proxifiersを参照してください。特に、オープンソースのtun2socks proxifer(code.google.com/p/badvpn/wiki/tun2socks)を推奨しています。
アンブロズビズジャク

コメントAmbrozをありがとう。cygwinで動作するために必要であり、プロキシーに関するウィキペディアのページから、言及されているものはすべてcygwinに実装されていないか、適用されないことがわかります。プロキシをcygwinで動作させる方法はありますか?

特にCygwinをサポートするために必要ではありません。Cygwinプログラムは、最終的にはWindowsプログラムですが、ライブラリとして実装されたPOSIXインターフェイスを備えています。プロキシがWindowsで動作する場合、Cygwinプログラムを問題なくプロキシできるはずです。
アンブロズビズジャク

回答:


31

HTTPSの「接続」をプロキシバージョンとして使用しています。これはman ncからのものです。

-X proxy_version ncがプロキシサーバーと通信するときに指定されたプロトコルを使用するよう要求します。サポートされるプロトコルは、 '' 4 ''(SOCKS v.4)、 '' 5 ''(SOCKS v.5)、および 'connect'(HTTPSプロキシ)です。プロトコルが指定されていない場合、SOCKSバージョン5が使用されます。

したがって、SOCKS 5を使用するには、次を使用する必要があります。

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

または単に:

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

役に立てば幸いです。


サマン、ありがとう。また、説明をありがとう、それは役立ちます。

ProxyCommandあなたの最初の行でなければなりません~/.ssh/config', or else nested inside a specify Host`セクション。本当に理由は分からない。それが最後の行である場合は機能しません~/.ssh/config
アーロン

@AaronMcDaid:From man ssh_config:「各パラメーターについて、最初に取得した値が使用されます。」そのため...グローバル設定をする必要があります前に、任意のHostセクション。の最後の行は~/.ssh/config、最終Hostセクションの一部です。
mpb

言及する価値があるのは、netcatが/bin/ncDebianとUbuntuにあるということです。
ランドバーグあたり

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

fc19 x86_64、Ncat:バージョン6.25


ちょうど好奇心-なぜproxy-type socks4ですか?
容疑者

2
これにもう少し説明を加えて、なぜそれが解決策なのを説明してもらえます
ChrisF

1
@ChrisFそれは受け入れられた解決策と同じですが、それはワンライナーです!構成ファイルを変更する必要はありません。
j123b567

1
これはnmap ncatプログラム(apt install nmapUbuntuやDebianなどのAPTシステム経由)であり、netcat(netcat-openbsdまたはHobbitのnetcat-traditional)とは異なります。
アダム・カッツ

1
@Adam Katzのコメントに関連する@suspectus proxy-typesocks4、nmap ncatプログラムが最近までsock5をサポートしていなかったためです。確かに、これは今でも(2017年11月)の問題で、RHEL 7として/ CentOSに7は、nmapのパッケージへの切り替えが、SOCKS5をサポートしていない古いビルドを使用
ランドール

3

tsockshttp://tsocks.sourceforge.net/)は、LD_PRELOADを使用してSOCKSプロキシを透過的に使用するプログラムを作成する優れたラッパーです。

tsocks ssh example.com

/etc/tsocks.confで SOCKSプロキシIPを設定することを忘れないでください


構成ファイルを作成するには複雑すぎる
江YD

1

次のコマンドは、ncを使用するだけです。

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

デフォルトはHTTPプロキシです。ポート7000で実行されているHTTPプロキシがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.