背景:使用阿里云RDS数据库,因为运维需要开通的远程访问。近期因为安全管理的需要,必须关闭阿里云数据库的公网访问权限。为便于运维及审计的需求,计划通过ssh tunnel方式来实现内网穿透。

目标:ssh的用户是低权的,只有开tunnel,不能使用shell。

 

必须条件:内网有台服务器A,A拥有公网IP及内网IP,A能访问数据库。

一、在A服务器开通SSH功能

二、在A服务器创建SSH帐号,并限制是能SSH tunner 不能shell。

1、创建新用户

sudo useradd test1

useradd与adduser都是创建新的用户 
1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。 
2、adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。

2、修改用户密码

passwd test1

3、限制当前用户不允许登录Shell

usermod -s /usr/sbin/nologin test1

三、验证

1、ssh shell登录验证

Last login: Tue Dec 10 14:03:42 2019 from XXX.XXX.XXX.XXX
Could not chdir to home directory /home/test1: No such file or directory
This account is currently not available.

1、因为使用useradd创建用户,所以提示当前用户没有home目录。

2、因为二.3的配置,所以当前用户不运行登录。

2、从本地使用Navicat,通过SSH连接数据库

 

重要:主机名或IP地址使用RDS的内网地址。

重要:填写A服务器公网IP地址或域名,SSH端口号

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐