DipMeshSystems.

ssh 技術文書
技術文書 literature music このサイトについて
公開鍵認証 SSHのトンネル機能 sshfs

リモートへのトンネルと、リモートからのトンネルの例

ポートフォワーディング:

  ssh -g -L 8080:192.168.111.200:80 UserName@192.168.111.1

ローカルで受けた通信をリモート側ネットワークにフォワード
sshクライアントはUserNameで192.168.111.1にssh接続し、
sshクライアントの8080ポートへのアクセスを、
192.168.111.1側のネットワークの192.168.111.200の80ポートに転送する。

ダイナミックポートフォワーディング

OpenSSHの通常のポートフォワーディングでは、ひとつひとつのポートについて指定する必要がありますが、ダイナミックポートフォワーディングを使用することで、SSH接続をSOCKSのプロキシサーバとして使用することが出来ます。

 ssh UserName@TargetServerName -i /Users/UserName/.ssh/id_rsa -D 1080

システム→ネットワーク、使用しているネットワークインターフェースの詳細設定から、プロキシ設定を localhost の 1080番ポートを指定します。

例えばMacでこれを使用する場合には

これでシステムのproxy設定を使用したネットワークアクセスはSSH接続対象サーバをプロキシとして経由して行われます。
また、socksプロキシ経由の接続に対応していないアプリケーションからも、tsocks [G] を使用することでプロキシとして使用することも出来ます。


リバースポートフォワーディング:

  ssh -g -R 8080:192.168.222.200:80 UserName@192.168.222.1

リモートで受けた通信をローカル側ネットワークにフォワード
sshクライアントはUserNameで192.168.222.1にssh接続し、
192.168.222.1の8080ポートへのアクセスを、
sshクライアント側のネットワークの192.168.222.200の80ポートに転送する。
さらに荒技で再接続かけるとか(未検証)。
  while [ true ]; do ssh -g -R 8080:192.168.222.200:80 UserName@192.168.222.1; done;


【重要】1024番以下のポートは特権ポート(privileged ports)と呼ばれ、
    root権限以外では接続元・接続先のサーバ自身には転送出来ません。
    どうしても必要な場合にはroot権限で実行するか、su や sudo などでrootに昇格して実行する必要があります。


設定スクリプトの使用による、簡単なsshトンネルの作成

 > cd ~/.ssh
 > cat config
 Host test
 HostName 192.168.0.1
 User UserName
 GatewayPorts yes
 LocalForward 3050 192.168.0.2:3050
 LocalForward 8080 192.168.0.3:80
 ^D
 > ssh test


ちなみにWindowsからPuttyで同じことを行うためには以下のような感じで。




Netcat [G] と組み合わせた中継接続

三点一段中継の基本コマンドライン
  ssh -o "ProxyCommand ssh 中継サーバ nc %h %p" 接続先ユーザ名@接続先サーバ

※上記の組み合わせをconfigで指定することによって多段中継も簡単に使える。
※中継サーバにはncをインストールする必要がある。sudo yum install ncとか。


©1998-2014 DipMeshSystems.
this site is powered by OpenSylph / DipMeshSystems.
x