最近參照主機操作文件建置 Bastion Host,常常 ssh 登入主機,覺得操作上不是很方便,所以後來改用 Xshell,Pietty(putty) 連線 Linux 主機,發現 ssh 也滿強的。
你可能需要懂的東西
[教學] 產生SSH Key並且透過KEY進行免密碼登入 | 辛比誌
sshconfig
SSH config file syntax and how-tos for configuring the OpenSSH client
ssh-agent
ssh转发代理:ssh-agent用法详解 - 骏马金龙 - 博客园
方式
ssh-agent forward(不推薦)
這個方法有風險,所以不推薦使用。可以參考這篇淺談 SSH agent forwarding 和 proxy command 的安全風險與應用 « Nic Lin’s Blog,有詳細說明。
ProxyCommand
這個在網站看到有很多不同寫法。我在嘗試不知道要用哪一個…,也不知道他們之間的差異,不過後來看到這篇ssh命令之ProxyCommand選項 | dslztx 備份圖,裡面有詳細講到差異,這邊有興趣的人可以看一下。
1 | Host PI1 |
這邊要注意要改 ProxyCommand 的PI1
,無腦貼可能不能跑。所以還是推薦使用 ProxyJump ,還算滿方便的。
ProxyJump
sshconfig
使用上非常簡單,把 ssh host 加在 ProxyJump
就完事了。
1 |
|
一般指令
1 | ssh -J pi@192.168.1.201 pi@192.168.1.202 |
後來看到可以做多個跳板方式,使用,
分隔就能做到。
1 | ssh -J pi@192.168.1.201,pi@192.168.1.202 pi@192.168.1.203 |
參考: 使用 ssh Proxyjump | Nyo’s Study Book
scp
scp1
scp -o 'ProxyJump jump.host' myfile.txt dist.host:/my/dir
當然有設定 ssh_config 也能直接做 scp 動作。
1 | scp a.sh PI2:~ |
參考:SSH to remote hosts though a proxy or bastion with ProxyJump | Enable Sysadmin
之前用winscp做 ssh tunnel 只能跳一層,但這個應該可以無限跳。可以參考ssh port forward連MySQL方法(SSH Tunnel) | 程式狂想筆記
相關文章
Day 12 - 使用 CDK 部署 Bastion Host 防禦主機! - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
安全地利用 Bastion Host 跳轉. Create secure SSH connection via… | by HsuCheng Tseng | Medium
認識 Bastion Host 部署管理機 - Yi Yang’s Blog
淺談 SSH agent forwarding 和 proxy command 的安全風險與應用 « Nic Lin’s Blog
vagrant 測試 ProxyJump 功能
本來想用網路上寫好的 vm 測試,但後來發現不用,想側功能直接 JUMP 自己連自己就好啦XDD。VM測試我目前還沒有想到怎麼隔離內網連電腦問題,可能專業虛擬環境才有辦法。
1 | ssh -J pi@192.168.1.201,pi@192.168.1.201 pi@192.168.1.201 |
jcoetsie/bastion_exercise: Learn how a bastion works using vagrant and virtualbox
vverecke/proxycommand_demo: Automatically sets up a development environment using Vagrant and Ansible to demonstrate the usage of bastion hosts.
這邊選擇可橋接網路
為什麼這個安全與我的心得
如果不走 VPN,就需要開通從外網走 22 port 進目標 AWS EC2 主機的連線。就算有白名單的限制,這樣寬鬆的設定並不算安全,在此我們可以利用俗稱 Bastion Host 的中繼主機當跳板,如此甚至可以只在需要時打開跳板主機,進而完全隔離外網。這篇文章將介紹如何安全地穿過跳板連上目標主機,以及可能發生的問題。
參考: 安全地利用 Bastion Host 跳轉. Create secure SSH connection via… | by HsuCheng Tseng | Medium
上面文章有簡單說明,我自己也有思考為什麼這個會比較安全,一般公司都會設好VPN,但連進去網路可能就跟公司同網段,在這樣情況下駭進去第一台電腦就可以針對該網段做動作(scan ip 或 抓該電腦資料)。如果我使用 Bastion Host 作法,就算外層被駭進去,把內部網段與 Bastion Host 隔離開,這樣安全性也會比較高。
使用 Bastion Host 這個方式可以在跳板主機不惠存到連線方式,這個還滿特別的。我目前三份工作,公司沒有使用到 Bastion Host 這種方法,但是有跳板主機概念。
- 在公司內部網路 ssh linux 主機後,再 ssh 另外一台主機,複製檔案也超麻煩的。
我之前有用過SSH Tunnel,仔細想想這個也可以用 ProxyJump 做連線操作。
- VPN 登入進去後,遠端(mstsc) Window 跳板主機,該跳板主機有相關xshell 可進行連線操作
Bastion Host 我有爬到網路,可以安裝SELINUX環境下,因為這樣權限會比較嚴謹,可能會比較安全。