使用基于密钥的身份验证通过PHP连接到EC2实例上的MySql

使用基于密钥的身份验证通过PHP连接到EC2实例上的MySql,php,mysql,ssh,amazon-ec2,Php,Mysql,Ssh,Amazon Ec2,我有一个运行mysql服务器的EC2实例,该服务器使用基于密钥的身份验证连接到它。我需要通过PHP从另一个非amazon服务器连接到这个EC2实例上的mysql服务器。这可能吗?如果是,我该怎么做?我需要在PHP中使用ssh2连接函数吗?显然,我不能只使用mysql\u connect,因为服务器使用基于密钥的身份验证。任何人能提供的任何帮助都将不胜感激。我假设,基于密钥的身份验证指的是ssh密钥,而不是使用密钥连接到mysql 所以你有两个选择 使用SSH隧道。这在非amzn服务器上使用ssh

我有一个运行mysql服务器的EC2实例,该服务器使用基于密钥的身份验证连接到它。我需要通过PHP从另一个非amazon服务器连接到这个EC2实例上的mysql服务器。这可能吗?如果是,我该怎么做?我需要在PHP中使用ssh2连接函数吗?显然,我不能只使用mysql\u connect,因为服务器使用基于密钥的身份验证。任何人能提供的任何帮助都将不胜感激。

我假设,基于密钥的身份验证指的是ssh密钥,而不是使用密钥连接到mysql

所以你有两个选择

  • 使用SSH隧道。这在非amzn服务器上使用ssh侦听器,并通过ssh将所有通信转发到mysql实例。这更安全,但不是没有一些开销

  • 如果不太担心安全问题,您可以打开安全组到非amzn服务器的ip,并直接建立到端口3306(或您正在使用的任何端口)的连接


  • 在任何情况下,您最终都会遇到一些延迟运行的查询,如下所示。取决于服务器之间的连接。

    是的,我指的是ssh密钥。如何在php中建立此连接?必须在php外部设置隧道。它将作为一个单独的进程运行。一旦你这样做了,你将使用localhost作为主机名和隧道监听的端口连接到mysql。是的,我知道如何设置隧道。我需要通过php连接到服务器,但服务器使用基于密钥的身份验证。如何通过php使用基于密钥的身份验证连接到服务器?隧道处理这个问题。你所需要做的就是连接到隧道。哦,好的,我明白了。我要试试这个。谢谢你的信息。