MySQL 서버에 액세스하기 위해 작동하는 SSH 터널을 생성하는 다음 명령이 있습니다.
ssh -f test@remotehost -L 127.0.0.1:3306:mysqlhost:3306 -N
여기서 원격 호스트는 .ssh/config에서 ProxyCommand를 사용하여 구성한 점프 호스트를 통해서만 액세스할 수 있습니다.
Host somehost
Hostname jumphost-name
ForwardAgent yes
ControlPath ~/.ssh/cm-%r@%h:%p
ControlMaster auto
ControlPersist 10m
Host *.example.com
User test
StrictHostKeyChecking no
ProxyCommand ssh -X -4 test@somehost nc %h %p
Expect 도구를 사용하여 동일한 작업을 어떻게 수행할 수 있나요?
답변1
expect
일종의 TCP 연결로부터의 입출력을 처리하기 위한 프레임워크입니다. 물론 ssh를 지원할 수 있지만... 확실히 mysql 프로토콜을 이해하지 못합니다. mysql 프로토콜 자체의 통신 대부분은 바이너리 데이터입니다. 그리고 마지막으로 조사했을 때 expect
바이너리 데이터를 제대로 구문 분석할 수 없었습니다. SSH를 통해 연결한 후 mysql
시작해야 하는 래퍼를 클라이언트에 작성하는 것이 더 나을 수도 있습니다 mysql
.