ssh隧道/跳板的使用
所有服務器都只允許跳板機遠程登錄之後,用戶需要先建立與跳板機的隧道連接,然後再通過隧道連接到遠端服務器,使用上來講增加了一個步驟
跳板機IP 192.168.1.1:1379 所擁有的用戶 root www
服務器IP 192.168.1.5:2000 所擁有的用戶 root test
一,跳板機配置
1,跳板機需要開啓forword轉發功能,需要一個用戶,把用戶實現公鑰私鑰免密碼認證,這裏只創建了www用戶
2,跳板機修改ssh配置文件,取消明文密碼認證,只允許公鑰私鑰認證
vi /etc/ssh/sshd_config
.....
PasswordAuthentication no
.....
二,線上服務器的操作
2,線上服務器需要創建用戶,這裏創建了test用戶,在防火牆設置只允許跳板機的IP訪問
3,ssh [email protected] -p 2000 -o ProxyCommand='ssh -p 1379 www@192.168.1.1 -W %h:%p
這段命令的意思是,我使用www用戶,來經過跳板機的認證,但是我登陸服務器的話,則是需要test用戶登錄服務器,跳板機並沒有test用戶
爲了使用簡單,可以寫到配置文件裏邊
vim ~/.ssh/config
Host tiaoban #任意名字,隨便使用
HostName 192.168.1.1 #這個是跳板機的IP,支持域名
Port 1379 #跳板機端口
User www #跳板機用戶
IdentityFile ~/.ssh/id_rsa #驗證跳板機的祕鑰對
Host nginx #同樣,任意名字,隨便起
HostName 192.168.1.5 #真正登陸的服務器,不支持域名必須IP地址
Port 2000 #服務器的端口
User test #服務器的用戶
IdentityFile ~/.ssh/lei.pem #服務的密鑰對,可以和跳板機的一樣,也可以不一樣
ProxyCommand ssh www@tiaoban -W %h:%p #指定代理
配置好之後,直接使用ssh nginx就直接到服務器了
此時關於跳板機,簡單的在說下邏輯
這個跳板機的配置,已經相當於經過了兩次認證,跳板機認證不過去的話,也是連接不了服務器
跳板機認證過去了,服務器認證不過去,同樣也是不行的,在上邊的配置文件裏,我特地使用了兩個用戶,兩隊祕鑰串,來進行測試
那麼問題來了,是不是我的跳板機可以任意跳轉呢?
不,我在跳板機可以配置,我只對那個IP,那個端口建立隧道,別的,一律不管,同時,跳板機用戶使用公鑰私鑰的方式相對來說提高一定的安全性
此時跳板機還可以添加谷歌的二次動態碼驗證,來提高安全度
不妨可以腦補一下,我可以將我的跳板機用戶設置不允許登陸bash,只允許做一個空認證的情況下呢?這樣的情況下,登陸服務器是不是會安全許多了呢