laravel使用SSH 隧道连接远程数据库

1、创建SSH隧道

// An highlighted block
 ssh -i ./id_rsa -N -L 3306:localhost:3306 -p 8848 root@192.161.1.1

对上述代码的 解释

命令是一个SSH隧道命令,用于将本地端口3306转发到远程服务器上的3306端口。以下是命令的详细解释:

ssh: 调用SSH客户端。
-i ./id_rsa: 指定用于身份验证的私钥文件。
-N: 不执行远程命令,仅用于端口转发。
-L 3306:localhost:3306: 将本地端口3306转发到远程服务器上的localhost:3306。
-p 8848: 指定SSH连接的远程端口为8848。
root@192.168.1.1: 连接到远程服务器的用户和IP地址。
这个命令通常用于安全地访问远程服务器上的数据库或其他服务。例如,如果你有一个运行在远程服务器上的MySQL数据库,你可以使用这个命令在本地计算机上通过3306端口访问它。

2、修改Laravel的.env配置文件

// An highlighted block
DB_CONNECTION=mysql
DB_HOST=127.0.0.1 //本地ip
DB_PORT=3306 //创建ssh隧道时转发的端口,不建议用3306,建议做对应的调整
DB_DATABASE=ssh_db_name //远程数据库名
DB_USERNAME=ssh_username //远程数据库账号
DB_PASSWORD=ssh_pwd //远程数据库密码

3、实现前后效果对比

在这里插入图片描述
在这里插入图片描述
好处:不需要每次都把远程库copy到本地进行debug,省去同步数据的时间。

总结:只需先创建SSH渠道后,修改.env配置即可连接远程数据库,无需调整额外的代码,如果不需要debug了,把SSH终止就会自动断开,无需担心有什么渗透的问题。

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用SSH隧道连接数据库是一种安全的方式,可以通过加密和身份验证来保护数据库连接。下面是使用SSH隧道连接数据库的步骤: 1. 配置SSH服务器:首先,你需要有一个可用的SSH服务器,可以是远程服务器或者本地机器上运行的SSH服务器。 2. 生成SSH密钥对:在客户端上生成SSH密钥对,包括公钥和私钥。你可以使用ssh-keygen命令生成密钥对。 3. 将公钥添加到SSH服务器:将生成的公钥添加到SSH服务器的授权文件中,通常是将公钥内容添加到~/.ssh/authorized_keys文件中。 4. 配置SSH隧道:在客户端上配置SSH隧道使用ssh命令来建立隧道连接。例如,如果你要连接到MySQL数据库,可以使用以下命令: ``` ssh -L <本地端口>:<目标数据库地址>:<目标数据库端口> <SSH服务器地址> ``` 其中,`<本地端口>`是你本地机器上用于连接数据库的端口号,`<目标数据库地址>`是目标数据库的地址,`<目标数据库端口>`是目标数据库的端口号,`<SSH服务器地址>`是SSH服务器的地址。 5. 连接数据库:现在你可以使用本地机器上的数据库客户端工具来连接数据库了。在连接设置中,将数据库地址设置为`localhost`,端口号设置为步骤4中指定的本地端口号。 注意:在使用SSH隧道连接数据库时,确保SSH服务器和数据库服务器都是可信任的,并且已经进行了适当的安全配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值