目标
MacBook ---(SSH)---> BastionServer ---(SSH)---> RemoteServer
说明
- BastionServer、RemoteServer SSH端口号均为60666
- 用户名为thatsit
- 密钥对在MacBook上生成
问题
首先在此场景里面,为了保障服务器的安全性,我们登录服务器都是采用密钥登录的,禁止密码登录。
因此,如果不启动ssh forward,想要实现上述功能,我们需要做的是把公钥存储在BastionServer和RemoteServer上,同时还需要把私钥分别存储在MacBook和BastionServer上。如此一来你的私钥就被存储在了一个本地之外的位置,尽管BastionServer是有相应访问策略的,还是存在很大的安全隐患。如果你的BastionServer被攻破了,剩下的RemoteServer那就只能眼睁睁地等待被搞了。
思路
而如果使用了SSH Forward的功能,上述问题将迎刃而解~
我们需要把公钥存储在BastionServer、各个RemoteServer上,公钥嘛,无所谓~
至于私钥,只需要存储在你的本地(MacBook)就好了。
除此之外,就是需要简单配置下SSH Forward,分分钟搞定~
开干
一、跳板机ssh相关配置
1,开启ssh forward agent
[thatsit(0)@BastionServer-02 12:19:56 ~]# cat .ssh/config ForwardAgent yes [thatsit(0)@BastionServer-02 12:19:59 ~]#
2,指定ssh连接端口为公司常用的ssh端口
[thatsit(0)@BastionServer-02 12:19:59 ~]# grep Port /etc/ssh/ssh_config # Port 22 Port 60666 [thatsit(0)@BastionServer-02 12:20:12 ~]#
二、mac上的配置,ssh-add添加下私钥
添加完成之后可以通过 ssh-add -L进行查看
注意:在生成ssh密钥对的时候,一定要加下密码,多一重安全保障。
使用
Step1,从MacBook登录到BastionServer
1,登录跳板机的时候指定-A参数启用SSH Forward即可
ssh -A user@BastionServerIP -p 60666
2,如果不想每次都输入-A参数,我们可以通过以下两种方式来做
①:修改 ~/.ssh/config配置,加上 ForwardAgent yes
Host BastionServerIP HostName BastionServerIP ForwardAgent yes
这样就可以使用ssh thatsit@BastionServerIP -p 60666来连接了
②:简单粗暴,配置下alias就好了~哈哈
alias jumper-server-login='ssh -A -p60666 thatsit@BastionServerIP'
Step2,从BastionServer登录到RemoteServer
因为在跳板机上开启了ssh forward agent,并且指定了ssh连接端口为常用的端口号,此外因为ssh登录的时候默认使用的用户名就是当前本地登录的用户名,因此只需要
ssh thatsit@RemoteServer
或者
ssh RemoteServer
即可登录到RemoteServer
==== Done ====