89

私はここで何をしているのかよくわからないので、助けていただけるなら覚えておいてください!

プロキシ経由で仮想サーバーに接続しようとしていますが、接続できず、ハングします。これは、プロキシを通過していないためだと思います。

私は自宅でまったく同じことを試しましたが、完全に機能します。ターミナルを使用して接続するOSXを使用しています。

SSHでプロキシを通過する方法を教えてもらえますか?

4

13 に答える 13

96

リチャード・クリステンセンの答えをワンライナーで行う方法は次のとおりです。ファイルの編集は必要ありません(大文字の部分を独自の設定に置き換えます。PROXYPORTは多くの場合80です):

 ssh USER@FINAL_DEST -o "ProxyCommand=nc -X connect -x PROXYHOST:PROXYPORT %h %p"

scpにも同じ-o ...オプションを使用できます。私のスーパーユーザーの回答を参照してください。


OS Xでこれを取得した場合:

 nc: invalid option -- X
 Try `nc --help' for more information.

誤って自作バージョンのnetcatwhich -a ncを使用している可能性があります (コマンドを実行することで確認できます/usr/bin/nc。最初にリストする必要があります)。2 つある場合、回避策の 1 つは、必要な nc へのフル パスを指定することですProxyCommand=/usr/bin/nc


CentOS の場合nc、 と同じ問題がありinvalid option --Xます。connect-proxy代替手段であり、使用して簡単にインストールできyum、機能します-

ssh -o ProxyCommand="connect-proxy -S PROXYHOST:PROXYPORT %h %p" USER@FINAL_DEST
于 2014-05-12T18:16:52.150 に答える
36

SSH プロキシ接続が頻繁に使用される場合は、毎回パラメータとして渡す必要はありません。次の行を追加できます~/.ssh/config

Host foobar.example.com
    ProxyCommand          nc -X connect -x proxyhost:proxyport %h %p
    ServerAliveInterval   10

次に、接続して使用します

ssh foobar.example.com

ソースはこちら

于 2013-10-03T14:39:54.667 に答える
27

-o "ProxyCommand=nc -X 5 -x proxyhost:proxyport %h %p"OSXでsocks5プロキシを介して接続するには、sshオプションを使用します。

于 2016-01-14T04:48:28.993 に答える
16

@rogerdpackの回答へのコメント:Windowsプラットフォームの場合、 nc.exeを見つけるのは本当に難しいですが、 ncをncatに置き換えることができること-X(http_proxy)がわかりました。完全な例は次のとおりです。

Host github.com
     HostName github.com
         #ProxyCommand nc -X connect -x 127.0.0.1:1080 %h %p
         ProxyCommand ncat --proxy 127.0.0.1:1080 %h %p
     User git
     Port 22
     IdentityFile D:\Users\Administrator\.ssh\github_key

ncat with--proxyは完全に機能します。

于 2016-12-07T15:15:03.077 に答える
3
ProxyCommand nc -proxy xxx.com:8080 %h %p

取り外して 代わりに-X connect使用してください。-proxy

私のために働いた。

于 2018-12-10T19:43:53.270 に答える