完全な免責事項:私はデータの世界から来ており、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.
正解であることを願っています:
- サーバーBで転送構成を作成します。
- a を使用して ServerA と ServerB からユーザーを作成し、
ssh keypair
ServerA に公開 SSH キーを入力します。.ssh/authorized_keys
ssh-copyid ..
- ServerAからServerBに一度ログインすると、ホストキーエントリを生成したり、ホストキー検証を無効にしたりできます(下記参照)。
- サーバーBからサーバーAにトンネルを開きます。
- 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でログイン権限を調整する必要があります。