전체 면책 조항: 저는 데이터 세계에서 왔으며 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에서 로그인 권한을 조정해야 할 수도 있습니다.