MySQL SSH 터널에 대한 PHP 스크립트

MySQL SSH 터널에 대한 PHP 스크립트

로컬 PHP 스크립트가 원격 서버의 MySQL 서버에 연결할 수 있도록 SSH 터널을 설정해야 합니다.

Remote machine: MySQL (127.0.0.1:3306) on Linux (SSH port 44422)
Local machine: Linux (Debian Squeeze)

문제는 다음 명령을 사용하여 연결할 수 없다는 것입니다.

ssh -oPort=44422 user@ip_address

PHP 스크립트가 원격 MySQL에 연결할 수 있도록 SSH 터널을 어떻게 설정합니까?

(PHP 스크립트를 통한 SSH 터널과 같은 다른 연결 방법이 더 좋다고 생각하시면 알려주세요.)

미리 감사드립니다!


편집: SSH에는 별도의 사용자 이름/비밀번호가 있고 MySQL에는 또 다른 사용자 이름/비밀번호가 있다는 것을 언급하는 것을 잊었습니다.

답변1

귀하의 질문에 정확히 대답하지는 않지만(h3rrmiller가 이미 좋은 답변을 제공했습니다), 반대하는 것이 좋습니다. SSH 연결이 중단되면 모든 mysql 연결이 끊어지고 새 SSH 연결을 설정할 때만 다시 설정할 수 있습니다.

mysql 트래픽을 암호화하기 위해 이 작업을 수행하는 경우: mysql은 SSL 연결도 지원하므로 이것이 더 나은 옵션입니다.

답변2

이를 위해 정방향 SSH 터널을 만들어야 합니다.

ssh user@ip -p 44422 -L3306:127.0.0.1:3306

그런 다음 mysql 쿼리를 127.0.0.1:3306으로 지정하십시오.

또는 원격 호스트와의 SSH 세션이 이미 있는 경우 ~CSSH 셸을 열고 입력하고 -L3306:127.0.0.1:3306Enter 키를 눌러 세션에 터널을 추가할 수 있습니다.

모든 mysql 연결은 SSH 세션이 계속 유지되어야 하므로 SSL과 같은 보다 지속적인 솔루션을 살펴보겠습니다.

관련 정보