実行中のSSHセッションにポート転送を追加する

実行中のSSHセッションにポート転送を追加する

OpenSSHクライアントには、次のように使用できるポート転送用のコマンドラインオプションがあります。

ssh -L localport:server:serverport user@host

クライアントをオン(ネットワーク経由でアクセスできるすべてのエントリ)にリダイレクトしながらhost接続します。userlocalportserverportserverhosthost

今、私はSSHを介してhost行ったと仮定します。

ssh user@host

セッションの途中で、私はポートを渡すことを忘れてしまったことに気づきました。ああ、何をしているのかログアウトし、ポート転送を介してSSH接続をリセットしたくありません。

実行中のSSHセッションにポート転送を追加する方法はありますか?

答え1

~からman 1 ssh:

エスケープ文字

ssh は、疑似端末を要求するときにエスケープ文字を使用して多くの機能をサポートします。

1つのチルダ文字を~~チルダ文字として送信することも、チルダ文字の後に後述の文字以外の文字を送信することもできます。特殊文字として解釈されるには、エスケープ文字は常に改行文字の後に続く必要があります。エスケープ文字は、EscapeChar設定ディレクティブを使用して設定ファイルまたはオプションを使用してコマンドラインから変更できます-e

サポートされているエスケープ(デフォルトは仮定~)は次のとおりです。

[… ]

~C
コマンドラインを開きます。現在、これにより-L、およびオプションを使用して-Rポート転送を追加できます-D(上記を参照)。 [...] 基本的なヘルプを表示するには、-h オプションを使用します。

したがって、入力Enter~C(すなわち首都c)それから

-L localport:server:serverport

予想通りlocalport、いよいよ。serverserverportEnter

メモ:

  • 初期値はEnterリモート側にすぐに送信され、そこで何らかのアクションが発生する可能性があるため、適切な時間を選択してください(たとえば、空のコマンドラインがあるシェルにある場合)。または確信したらそれにもかかわらず、最後に入力した内容Enter(たとえば、実行中のコマンドを呼び出した場合など)~Enterローカルですssh

  • 国際化されたキーボードでは、チルダは特殊な「チルダ」文字を生成するデッドキーです(例:~ngenerateを押すñ)。この場合、単一のチルダを生成するには、[次へ]をSPACEクリックする必要があります。つまり、 。スペイン語/LA キーボード配列では、チルダと C の結合文字を使用しないため、スペースを省略して希望の順序を作成できます。~ENTER~SPACEC~C

  • 複数のリダイレクトの場合、sshエスケープされたコマンドラインは単一のコマンドのみを受け入れます。別のコマンドを入力またはリダイレクトするには、キーボードシーケンスをもう一度押す必要があります。

答え2

複数のSSH接続を持つことができます。ポート転送は、実行中の接続とは無関係に実行できます。また、クライアント側で実行する必要があります-L

-N -fコマンドに加えて、他の端末ウィンドウで背景を指定し、何も送信しないことがENTERあります。この背景はWindowsでは正しく動作しない可能性があるため、端末を最小限に抑えてください。

まさにここにもう一つの答えは次のとおりです。~C

関連情報