目標
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,分分鐘搞定~
開幹
1、跳板機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 ~]#
2、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登陸的時候默認使用的用戶名就是當前本地登陸的用戶名,所以只須要
或者
便可登陸到RemoteServer
==== Done ====