前言
由於安全性問題,公司的對外的服務器需要先連接跳板機,再進一步訪問。也就是說,假設要往生產服務器上傳輸文件,先需要傳入文件至跳板機,再從跳板機傳送文件至內網服務器。這樣就導致開發或者傳輸文件十分麻煩。下面可以通過兩種方式提升效率,本質都還是使用ssh隧道
。
finalshell
finalshell
是Mac OS上一款開源的終端編輯器,借助其提供的可視化界面,可以輕松地進行文件的傳輸。下面詳細介紹下如何使用finalshell
進行配置。假設跳板機地址為11.22.33.444
,用戶名和密碼皆為tiaobanji
;內網服務器地址為555.66.77.88
。
首先在finalshell
中新建SSH連接,如下圖所示:
之后,點擊圖上左側最后一個隧道,進行如圖配置。
如圖所示,主要配置監聽端口,可以隨意選取合法的端口數字,以及目標地址,目標端口固定為22。這樣做之后,每次連接跳板機,本地的6000端口便會等價於內網服務器的22端口。之后便可以通過訪問本地6000端口,連接到服務器。
ssh命令
使用命令ssh -N -f -L 6000:555.66.77.88:22 -p 22 tiaobanji@11.22.33.444 -o TCPKeepAlive=yes
,在命令行使用上述命令后,再ssh至本地的6000端口,原理和上述方式一樣。之后,如果不希望本地的6000端口一直開着,可以使用lsof -i:6000
查看該進程並殺死即可。
但是有的時候可能連端口都不記得,這個時候可以使用ps -A | grep ssh
找到后台的執行進程,再操作即可。