ジャンプサーバーを介したSSH配信

ジャンプサーバーを介したSSH配信

完全な免責事項:私はデータの世界から来ており、Unixとネットワーキングの経験は限られています。

  • 私はLinux 5.15.36でMysqlを実行しています(例:サーバーA)、そしてLinux 5.10.102(サーバーB)。
  • ~からサーバーB到着サーバーA、SSH経由で接続できます。
  • 次に、サーバーレス環境で実行されるSQLクライアントがあります。サーバーC)それSSHは利用できません認証に使用されます。接続と認証には、ユーザー/パスワード、ポート、サーバーアドレスなどのSQLプロトコルを使用します。

私が説明した制約を考慮すると、ジャンプサーバーを介してトンネルを何とか構成することで、SQLクライアントサーバーC実行中の mySQL データベースに接続します。サーバーA

答え1

誤った答え:

From what you decscribe, the following setup should satisfy your needs:

 1. Configure a ssh ProxyJump to Server A via Server B
 2. Open a tunnel to Server A via Server B forwarding localhost:3306 to Server_A:3306

The configuration for the tunnel would be specified in `~/.ssh/config` like this:


```
Host ServerA
 HostName FQDN.SERVER-A
 # your user and ssh key for ssh to server A
 User <the user>
 IdentityFile <users ssh key>
 # Be sure `user` can ssh to server B from server C
 ProxyJump [email protected]
 LocalForward localhost:3306 localhost:3306

```

Then open the tunnel from ServerC with

```
ssh -N -f ServerA
```

and then try the `mysql-client` on ServerC.

If you have problems, first try `ssh ServerA` after killing the backgrounded ssh above, and see if that works.

正解であることを願っています:

  1. サーバーBで転送構成を作成します。
  2. a を使用して ServerA と ServerB からユーザーを作成し、ssh keypairServerA に公開 SSH キーを入力します。.ssh/authorized_keysssh-copyid ..
  3. ServerAからServerBに一度ログインすると、ホストキーエントリを生成したり、ホストキー検証を無効にしたりできます(下記参照)。
  4. サーバーBからサーバーAにトンネルを開きます。
  5. MySqlを介してサーバーCからサーバーBに接続します。

1.)ServerBの転送設定(ここではユーザー設定で行われます。SSHサーバー設定でも実行できますが、これまで使用していません)は次のとおり/home/sshuser/.ssh/configです。

Host ServerA
 HostName FQDN.SERVER-A
 # your user and ssh key for ssh to server A
 User <the user>
 IdentityFile <users ssh key>
 LocalForward LAN-IP-SERVER-B:3306 LAN-IP-SERVER-A:3306
 # disable host key checking
 # StrictHostKeyChecking no

2.)ServerBでSSHログインユーザーとSSHキーペアを作成し、ServerAでユーザーを作成し、SSH公開鍵をServerAにコピーします。

root@ServerA $>useradd sshuser
root@ServerA $>passwd sshuser
....
root@ServerB $>useradd sshuser
root@ServerB $>sudo -i sshuser
sshuser@ServerB $>ssh-keygen -t rsa -b 2048
sshuser@ServerB $>ssh-copyid sshuser@ServerA
...

3.) 次の場合、ServerB から ServerA にログインします。厳密なホストキーの確認有効:

sshuser@ServerB $> ssh sshuser@ServerA

4.)ServerBからServerAにトンネルを開きます。

sshuser@serverB: $> ssh -N -f ServerA

5.) 次に、サーバーCでMySQLクライアントを使用して次に接続します。

mysql://mysluser-on-server-a:password@ServerB:3306

あなたは次に接続されますServerAの資格情報サーバーBに送信され、SSHトンネルを介して自動的にサーバーAに転送されます。

次の手順は、手順2で説明したように、この操作を手動で実行する必要がないようにServerBからServerAへのトンネルを自動的に設定することです。

注:ユーザーが特定のリモートホストを使用できるようにするには、MySql ServerAでログイン権限を調整する必要があります。

関連情報