接続するserverAがあります。次に、serverAを使用してdatabaseBに接続します。 PuTTY(ウィンドウ)でこのように設定します。
Session1:
1。 admin @serverAに接続します
2。トンネルローカルポート10022をdatabaseB:22にセットアップします
3。 'vi'を実行します
セッション2:
1。 admin @ localhost:10022に接続します
2。データベース1521へのトンネルローカルポート1521のセットアップ
3。 'vi'を実行します
(viはセッションを保持するために使用されます)
次に、プログラムはデータベース接続にlocalhost:1521を使用します。
Cygwinの単一のコマンドまたはバッチファイルでそれを実行できるかどうか疑問に思いますか? serverAのポートを開くことができないことに注意してください
ssh -L 1521:127.0.0.1:61521 admin@serverA ssh -L 61521:127.0.0.1:1521 admin@databaseB
またはコマンドウィンドウからplink(PuTTYリンク)を使用します。
plink -ssh -L 1521:127.0.0.1:61521 admin@serverA ssh -L 61521:127.0.0.1:1521 admin@databaseB
これを単一のコマンドとして実行することに関しては、前の答えは正しいですが、2番目のsshにパスワードが必要な場合は、おそらく機能しません(sshのデフォルト構成によって異なります)。次のように、-tオプションを使用して、疑似ttyの割り当てを強制する必要があります。
ssh -t -L 1521:127.0.0.1:61521 admin@serverA ssh -L 61521:127.0.0.1:1521 admin@databaseB
(これはcygwinのsshコマンドを使用して機能します)
そのためにProxyCommandオプションを使用できます。以下をssh構成ファイル(通常は~/.ssh/config
にあります)に入れます。
Host direct-serverB
ProxyCommand ssh admin@serverA ssh admin@serverB sshd -i
次に、直接利用可能であるかのようにserverBに接続できます。
% ssh -L 1521:localhost:1521 admin@direct-serverB
このコマンド開かない中間サーバー上の任意のポートA。ただし、serverAとローカルマシンの両方からserverBに対して認証する必要があるという欠点があります。
ServerAにnetcat
がインストールされている場合は、これをssh構成に書き込むことができます。
Host direct-serverB
ProxyCommand ssh admin@serverA nc -q0 serverB 22
そして、serverA→serverB認証ステップをドロップします。
私は実行してみます:
ssh admin@serverA -L 10022:databaseB:22
ssh admin@localhost -p 10022 -L 1521:database2:1521
しかし、男、私はそれを示唆することさえしがみついています。 DatabaseBをファイアウォールで保護した人々には、おそらくそうする正当な理由がありました。彼らと話してください。
以下は私のために働いたものです。
-私の目標は、クライアントアプリケーションをlocalhost:1115にポイントし、実際にtarget_db_server:1433に接続することでした。
-target_db_serverには、jumpserver2からのみアクセスできます。
-jumpserver2には、jumpserver1からのみアクセスできます。
-したがって、コマンドはjumpserver1に接続し、トークンの入力を求め(私の場合)、次にjumpserver2に接続してそのサーバーのパスワードを要求すると、ローカルクライアントが接続を確立できます。
ssh -L 1115:127.0.0.1:1115 username@jumpserver1 -tt ssh -L 1115:target_db_server:1433 username@jumpserver2
接続がタイムアウトすることがわかりましたが、これは理想的ではありませんでした。以下はそれを修正しました:
echo "Host *" >> ~/.ssh/config
echo "ServerAliveInterval 60" >> ~/.ssh/config