SSH LocalForward - ホストジャンプ

SSH LocalForward - ホストジャンプ

私は現在、日常的な作業を簡単にするためにLinuxシステムをセットアップしています。端末を使用してホストに移動できるようにSSHを設定したいと思います。 LocalForwardとProxyJumpについて読みました。目的は、最初のサーバーに接続し、それを介して接続をトンネリングしてから2番目のサーバーに接続することです(2番目のサーバーは最初のサーバーからのみ接続できる領域にあるため)。

今私がしたことは〜/.ssh/configファイルの次の部分です。

Host tunnel
    HostName <firstServer>
    IdentityFile ~/.ssh/example.key
    LocalForward 9906 <secondServer>:22
    User helloWorld

「ssh トンネル」を使用してサーバーに接続すると、最初のサーバーに正常に接続できるようになります。これで、telnetを使用して「telnet SecondaryServer 9906」を使用して2番目のサーバーを確認すると、そのサーバーでSSHが実行されていることがわかります。 「ssh localhost:9906」を使用して2番目のサーバーでSSHを試みると、ホスト名が解決されないというメッセージが表示されます(127.0.0.1:9906と同じ)。

後で「ProxyJump」オプションについて読み、次のことを試しました。

Host tunnel
    HostName <firstServer>
    ProxyJump <secondServer>:22
    User helloWorld

ただし、接続は確立されません。 「接続先」で停止しました。

ここで明らかなものを見逃していますか?たぶん私がSSH配信の基本概念全体を誤解したのではないでしょうか?私はPuttyの使い方に慣れていましたが、最近はLinuxに切り替えてすべてを適切に設定したかったです。

答え1

この ~/.ssh/config は ProxyJump を渡します。飛躍到着ターゲット、ポートを最後までバインドします。ターゲット:

Host jump
  HostName      <server-ip>
  User          user-name
  IdentityFile  ~/.ssh/key.pem
  LocalForward  8888 localhost:8888
Host target
  HostName      <server-ip>
  User          user-name
  IdentityFile  ~/.ssh/key.pem
  ProxyJump     jump
  LocalForward  8888 localhost:8888

使用法:

  • SSHターゲット
  • ssh -v target # 詳細なデバッグビュー
  • 答え2

    私たちのチームでは、以下のワンライナーを使用しています。

    $ ssh zone_user@zone_host -o ProxyCommand="ssh -W %h:%p proxy_user@proxy_host"
    

    メモ:

    1. 両方が存在proxy_user@proxy_hostし、zone_user@zone_host秘密鍵があることを確認してください~/.ssh/authorized_keys
    2. SSHを介してSSHを転送するために追加のポートを割り当てて「トンネル」する必要はありません。
    3. 私はそれをあまり扱うことをお勧めしません~/.ssh/config。エラーが発生しやすく、文書はユーザーフレンドリーではありません。上記のような単一のライナーを共有することをお勧めします。

    乾杯!

    関連情報