私はここで何をしているのかよくわからないので、助けていただけるなら覚えておいてください!
プロキシ経由で仮想サーバーに接続しようとしていますが、接続できず、ハングします。これは、プロキシを通過していないためだと思います。
私は自宅でまったく同じことを試しましたが、完全に機能します。ターミナルを使用して接続するOSXを使用しています。
SSHでプロキシを通過する方法を教えてもらえますか?
リチャード・クリステンセンの答えをワンライナーで行う方法は次のとおりです。ファイルの編集は必要ありません(大文字の部分を独自の設定に置き換えます。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
SSH プロキシ接続が頻繁に使用される場合は、毎回パラメータとして渡す必要はありません。次の行を追加できます~/.ssh/config
Host foobar.example.com
ProxyCommand nc -X connect -x proxyhost:proxyport %h %p
ServerAliveInterval 10
次に、接続して使用します
ssh foobar.example.com
-o "ProxyCommand=nc -X 5 -x proxyhost:proxyport %h %p"
OSXでsocks5プロキシを介して接続するには、sshオプションを使用します。
@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
は完全に機能します。
ProxyCommand nc -proxy xxx.com:8080 %h %p
取り外して 代わりに-X connect
使用してください。-proxy
私のために働いた。