目標
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 ====