文章目录
- 实践场景与需求
- 一、解决方案
- 1.1.解决方案一
- 1.2.解决方案二
- 二、架构图
- 2.1.方案一:
- 2.2.方案二:
- 三、ssh密钥钥配置(方案二方案一可通用)
- 总结
实践场景与需求
大家在部署小型或者个人云上环境的时候,需要通过远程登录云上内网服务器进行管理,如果是从控制台登录会比较繁琐。
如果给每台服务器开公网ip,用ssh登录,这样会有安全隐患且不合理,如果开通堡垒机,对于小型的云上环境,第一是开销大,第二是没必要,这样一来一个合理的解决方案就显得十分重要。
一、解决方案
1.1.解决方案一
在内网多开一台服务器并绑定弹性公网ip(跳板机),通过ssh公钥远程登录这台服务器,然后把个人ssh登录端的公钥和跳板机与后端服务器打通,这样就能实现一键式登录远程的内网服务器进行访问。(个人解决方案,保证公钥为个人所有)
1.2.解决方案二
使用负载均衡的四层转发功能,转发ssh的请求到固定的一台内网服务器(跳板机),然后打通跳板机与后端服务器的公钥,实现一键式登录。提示:如需要内网器服务请求公网服务的情况可使用nat网关的snat功能进行解决
(小型云上环境)
二、架构图
2.1.方案一:
2.2.方案二:
三、ssh密钥钥配置(方案二方案一可通用)
配置密钥登录可以让连接不会那么繁琐,可以实现一键登录。(演示使用案例一)
1.ssh密码远程连接登录跳板机(通过负载均衡转发
)
ssh root@负载均衡ip
2.在跳板机中生成公钥
输入命令:ssh-keygen
生成密钥
输出内容:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
回车
Enter passphrase (empty for no passphrase):
(这里输入密钥锁码,密钥锁码在使用私钥时必须输入,这样就可以
保护私钥不被盗用。当然,也可以留空,实现无密码登录。)
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
执行结束后,在当前用户的主目录中生成了一个 .ssh 的隐藏目录,
内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。
3.那么现在把公钥重命名为authorized_keys
cat id_rsa.pub >> authorized_keys
4.把公钥复制到你想登录的服务器的主目录下的.ssh目录下(相当于你想登录哪台服务器那么你就把公钥复制到哪台服务器下
),如果无此目录可自行创建。
以下几步操作全在目标服务器中操作:
5.设置authorized_keys的权限为600
chmod 600 文件名
6.编辑 /etc/ssh/sshd_config
文件,进行如下设置开启允许公钥登录
RSAAuthentication yes
PubkeyAuthentication yes
6.1.注意是否开启允许root登录
PermitRootLogin yes
6.2.然后禁用使用密码登录
PasswordAuthentication no
然后就可以通过跳板机进行对内网服务器的访问了
推荐命令ssh -J 负载均衡IP 内网服务器ip
(实现一键登录)
登录流程:
本地发起ssh请求>负载均衡进行端口转发>使用密码登录跳板机>在跳板机上使用密钥进行对内网服务器访问
扩展:如果想完全用密钥登录,那么可以在本地登录端生成公钥,复制到跳板机里,打通本地与跳板机的连接,记得取消跳板机的密码登录方式,然后在跳板机内生成密钥,把跳板机的公钥复制到每台内网服务器上,打通内网服务器连接。
扩展登录流程:
本地发起ssh请求>负载均衡进行端口转发>密钥登录跳板机>在跳板机上使用密钥进行对内网服务器访问(全程一键登录)
也推荐使用命命:ssh -J 负载均衡IP 内网服务器ip
(实现一键登录)
总结
适用于小型与个人和无堡垒机的解决方案,实现快速远程访问在内网服务器,减少复杂操作,提高运维效率。当然也有一些开源的项目,可以自建堡垒机实现一些其他的管理功能,每种方案都有它的适用环境,利弊自鉴。