经过堡垒机透明链接到云中任意内网主机,且自由切换到其余主机。web
适合于各类公有云环境。bash
你的SSH证书在每一台主机上都有相同的帐户名以及控制台登陆受权。服务器
这一点其实不怎么容易,比较可行的方法有:ssh
关于前置条件的实现,不在本文的讨论范畴,所以这里再也不展开细节了。工具
你的工做主机须要有一点准备:请修改 ~/.bashrc
追加以下语句:ui
ssh -add -K ~/.ssh/id_rsa
alias ssh='ssh -A'
# 从新登陆到终端,或者就地应用变动:
. ~/.bashrc
复制代码
以上咱们假定你的主力 SSH 证书就是当前帐户的缺省证书,不然你须要指定正确的证书路径。spa
上面的语句将会在 SSH 会话中携带你的证书到任意位置,固然你也并没必要担忧证书的泄露问题,你的证书只会存在在内存中。code
假定前置条件是知足的,例如已经在某个新的 VPC 中准备好了自定义镜像,而且新开第一台主机做为堡垒机,而且主机名命名为 cx1ops00
,那么cdn
ssh cx1ops00
复制代码
应该能顺利登陆到该主机。blog
堡垒机须要开启SSH转发,能够修改堡垒机的 /etc/ssh/ssh_config
加入:
Host cc*
ForwardAgent yes
复制代码
也能够创建 ~/.ssh/config
加入该配置。
你能够继续开其它主机,这些主机都命名为 cc1xxxxxx
,注意每台主机的主机名和IP地址须要被写入堡垒机的 /etc/hosts
文件中,或者是写入到内网 DNS 服务器中。通常来讲,咱们经过新建主机时的用户自定义启动脚原本完成该工做。
咱们如今须要完成通配符配置,修改 ~/.ssh/config
加入以下的配置文本:
Host cc*
PreferredAuthentications publickey
IdentityFile ~/.ssh/qcloud/tencent-cloud-newEcsDefault.dms
ProxyCommand ssh cx1ops00 exec nc %h %p
复制代码
同样的道理,证书文件的路径你本身修正正确。
经过上面的通配符配置,咱们约定凡是ssh到云主机名 cc*
的,一概借助堡垒机 cx1ops00
转发到云端,至于确切的云主机名的正确解释,则交到堡垒机上去完成。所以,如今在本机上经过 ssh cc1web01
能够直接链接到云上的内网主机了。
经过堡垒机的链接,有一张图,暂时没有寻找到原始来源:
上面的方法,是用在我工做中的方法。DevOps 中 Ops 的基础的基础,就是如何便利地在各主机中巡航。