GNU/Linux >> Linux の 問題 >  >> Linux

別のサーバーに到達するためにhost(jumpserver)を介してsshする方法

このガイドでは、SSH ProxyCommandの使用など、sshクライアントが提供するオプションを使用してプロセスを簡素化する方法を学習します。 コマンド。

関連コンテンツ:

  • SSH –sshキーの生成と操作

SSHシナリオ

これがsshの設定方法です。

+--------------+       +------------+      +-----------+
| Local machine|   ->  | JumpServer | ->   | Dbserver  |
+--------------+       +------------+      +-----------+

DBサーバーにアクセスするには、中間サーバーであるJumpServerにログインする必要があります。ジャンプサーバーへの最初のログイン

ssh [email protected]

次に、ジャンプサーバーからdbサーバーにログインできます

ssh [email protected]

最新のsshクライアントに-Jオプションを使用する

最新のsshクライアントの場合、-Jオプションを使用すると、ジャンプホストとして使用するホストを指定できます。これがフォーマットです

ssh -J [email protected] [email protected]

これは、パブリックジャンプサーバーを使用してリモートに接続する方法です

ssh -J [email protected] [email protected]

sshキーを指定する必要がある場合は、次の形式を使用してください:

ssh -J [email protected] [email protected]  -i ~/.ssh/id_server_key

-Jオプションが使用できない場合のProxyCommandの使用

古いバージョンのopensshでは、 -J 利用できません。したがって、次の構文を使用します。

ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]

これが私のローカルマシンでの使用方法です

ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected] -i ~/.ssh/id_rsa

-Wオプションをサポートしていない最も古いクライアントの場合

この場合、 ssh -tt 指図。 2つのsshコマンドを入力する代わりに、次のオールインワンコマンドを入力できます。これは、ジャンプホストとしてjumpserverと呼ばれるファイアウォールを介してリモートdbserverに接続する場合に便利です。

ssh -tt [email protected] ssh -tt [email protected]

使用法:

ssh -tt [email protected] ssh -tt [email protected] -i ~/.ssh/id_rsa

場所:

  • -t sshコマンドに渡されたオプションは、疑似tty割り当てを強制します。これは、リモートマシン上で任意の画面ベースのプログラムを実行するために使用できます。複数の-tt オプションは、sshにローカルttyがない場合でも、ttyの割り当てを強制します。

構成を〜/ .ssh/configファイルに保存する

構成オプションは、~/.ssh/configで定義できます。 ファイル。構成は次のようになります。ProxyCommandを指定します:

Host dbserver
    Hostname 10.70.1.190
    User ubuntu
    ProxyCommand ssh [email protected] -W %h:%p
    IdentityFile ~/.ssh/id_rsa

ProxyJumpを使用することもできます

Host dbserver
    Hostname 10.70.1.190
    User ubuntu
    ProxyJump [email protected]
    IdentityFile ~/.ssh/id_rsa

複数のジャンプホストを再帰的にチェーンすることもできます:

Host jumpsrver
    Hostname 13.36.234.247
    User rocky


Host dbserver2
    Hostname 10.70.1.190
    User ubuntu
    ProxyCommand ssh -W %h:%p jumpsrver
    IdentityFile ~/.ssh/id_rsa

Host dbserver3
    Hostname 10.70.1.190
    User ubuntu
    ProxyCommand ssh -W %h:%p dbserver2
    IdentityFile ~/.ssh/id_rsa

これを行うと、他のホストを介してプロキシされます

ssh dbserver3

Linux
  1. Ssh – Sshを使用して別のPCを介してPCに接続する方法は?

  2. Ssh – Sshを介した別のマシンを介したトンネルトラフィック?

  3. 別のサーバーを使用してサーバーにSSH接続する方法は??

  1. Nginx仮想ホスト(サーバーブロック)を作成する方法

  2. Sshトンネルを介してインターネットをルーティングする方法は?

  3. LinuxでパスワードなしのSSHを設定する方法

  1. AndroidからLinuxでSSH接続する方法

  2. SSH接続タイムアウトを増やす方法

  3. SSHセッションを存続させる方法