web-dev-qa-db-ja.com

SOCKSプロキシ経由のSSHですか? (クライアント= OpenSSH OS X)

この質問がここでServerFaultに最適か、SuperUserに最適かはわかりません。論理的に考えると、これはsysadminの質問だと思うので、ここに入れておきます。MODが移動する必要があるとModが考えた場合は、誤解して謝罪してください!

とにかく-オフサイトのサーバーがあり、HTTPプロキシまたはSOCKS 4/5プロキシを介さない限り、ネットにアクセスできないプライベートIPで立ち往生しています。私はOS Xを実行しています。ターミナルからのsshコマンドで、これらの2つのプロキシのいずれかを経由してリモートサーバーにアクセスできるようにしたいと考えています。リモートサーバーのSSHポートは非​​標準ですが、それが大きな違いをもたらすとは思えません。

11
Bart B

私はこれが古い投稿であることを知っていますが、この答えはまだ役立つと思います:

これは、NetCat(nc)を使用したSOCKSプロキシを介して非常に簡単に行うことができます。 〜/ .ssh/configに2行を追加するだけです。1行はプロキシするホストを指定し、1行はncを介して接続する方法を指定します。そのようです:

〜/ .ssh/config:(OSXでテスト済み、Linuxでも動作するはずです)

Host 10.*
    ProxyCommand nc -X 5 -x PROXY_Host:1080 %h %p

「PROXY_Host」をセットアップに適したものに置き換えます。

これにより、sshは、ターゲットホストへのTCP接続を直接開くのではなく(この場合、「10。」で始まるすべてのもの-IPまたはホスト名にすることができます)、「実際にTCP=接続を確立するために指定されたオプションを指定したnc "コマンド。SSHはそこから残りを行います。非常に便利です。

"5"はSOCKSバージョン、 "1080"はプロキシポート、 "%h" SSHはコマンドラインで入力したホストに置き換え、 "%p" SSHはコマンドラインからのポート(またはデフォルト) 22)。

5
bgp

少し遅れますが、ここでSSHコマンド自体に-oフラグを付けて他の回答を使用できることに注意してください。これは私にとって便利でした。プロキシを使用する必要がある場合とない場合があるので(どのオフィスにいるかによって異なります)、実際にssh構成ファイルを編集する必要はありません。

ssh -o "ProxyCommand nc -X 5 -x myproxy:myproxyport %h %p" [email protected]
3
EdmCoff