CLIパラメータLocalForward
として機能するようなsshクライアント設定ディレクティブを探しています-L
しかしパラメータ-R
要約問題の詳細
データ:
repoServer -> myComputer -> NAT -> stagingServer
インターネットに公開されていないローカル Git リポジトリ サーバーと、リポジトリをデプロイする必要があるリモート ステージング サーバーがあります。
これを行うには、リバース ソケットを使用してリモート ステージング サーバーに SSH 接続します。
現在の構成ぼくのコンピュータ:
ファイル:~/.ssh/config
Host StagingServer
Hostname staging.acme.com
User username
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_username
ForwardAgent yes
私が実行しているもの:
ssh StagingServer -R 8022:repository.local:22
現在の構成ステージングサーバー:
ファイル:~/.ssh/config
Host repository
Hostname localhost
User git
Port 8022
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_deployer
実行できるもの:
git clone git@repository:myProject.git
すべてはうまくいきましたが...最後に
質問:
sshクライアントの設定ファイル(~/.ssh/config)でリバーストンネルを開くように指定して、追加する必要がないようにすることは可能ですか?-R 8022:repository.local:22
答え1
明らかに、探しているのは RemoteForward です。詳細は ssh_config ドキュメントで確認できます...
ドキュメンテーション:参考: (RemoteForward を検索してください)。説明は不要です。
リモートフォワード
リモート マシンの TCP ポートを、ローカル マシンから指定されたホストとポートにセキュア チャネル経由で転送することを指定します。最初の引数は [bind_address:]port、2 番目の引数は host:hostport でなければなりません。IPv6 アドレスは、アドレスを角括弧で囲むか、代替構文 [bind_address/]port および host/hostport を使用して指定できます。複数の転送を指定でき、コマンド ラインで追加の転送を指定できます。特権ポートは、リモート マシンに root としてログインしている場合にのみ転送できます。
次に、ぼくのコンピュータ次のように変わります:
ファイル:~/.ssh/config
Host StagingServer
Hostname staging.acme.com
User username
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_username
ForwardAgent yes
RemoteForward 8022 repository.local:22