今天接了一个需求 需要从本地跑脚本读远程数据库的数据 ,而数据库又是从跳板机(ssh)跳过去的。所以这里做远程端口映射到本地,然后连接本地端口,操作远程数据库。
1.命令:
#mysql 远程数据库端口映射本地
ssh -p {ssh_port} -i {rsa_file} -fNL {local_port}:{mysql_ip}:{mysql_port}
{ssh_user}@{ssh_ip}
如:
ssh -i ~/xxx.pem -f -N -L 3307:10.50.10.11:3306 user@xxx.com
解释:
xxx.pem 是你的ssh跳板机密钥(一般是运维给的)
-p {ssh_port}: 指定跳板机器的ssh服务的端口
-i {rsa_file}:指定连接跳板机的ssh公钥,由跳板机的ssh服务端生成,如果不指定公钥或者公钥验证失败则会弹出密码进行登录。
-f:需进行ssh认证
-N:只进行端口转发,不执行命令
-L:指定连接服务的格式 [bind_address:]port:host:hostport
{local_port}:本地监听的端口
{mysql_ip}:转发到的mysql的ip或域名
{mysql_port}:转发到的mysql的端口
{ssh_port}:跳板机的
{ssh_user}:跳板机的ssh用户名(如果为rsa登录,则ras对应的用户名和ssh_user一致)
{ssh_ip}:跳板机的ip或域名
2.通过映射 可以在端口里面找到你开放的tcp映射端口
lsof -i :端口号
- 如: lsof -i :3307
3.连接
mysql -h127.0.0.1 -uartboard -p"password" -P3308
注意: -p ""要加双引号哦 ,因为特殊的符号在命令行 要用双引号括起来 不然会报错
本文详细介绍如何使用SSH端口映射技术,实现从本地安全地访问远程数据库。通过具体命令示例,讲解如何配置SSH密钥,设置端口转发,并在本地连接远程MySQL数据库。此外,还提供了检查端口映射状态的方法。
655

被折叠的 条评论
为什么被折叠?



