經過堡壘機透明鏈接到雲中任意內網主機,且自由切換到其餘主機。web
適合於各類公有云環境。bash
你的SSH證書在每一臺主機上都有相同的帳戶名以及控制檯登陸受權。服務器
這一點其實不怎麼容易,比較可行的方法有:ssh
關於前置條件的實現,不在本文的討論範疇,所以這裏再也不展開細節了。工具
你的工做主機須要有一點準備:請修改 ~/.bashrc
追加以下語句:ui
ssh -add -K ~/.ssh/id_rsa
alias ssh='ssh -A'
# 從新登陸到終端,或者就地應用變動:
. ~/.bashrc
複製代碼
以上咱們假定你的主力 SSH 證書就是當前帳戶的缺省證書,不然你須要指定正確的證書路徑。spa
上面的語句將會在 SSH 會話中攜帶你的證書到任意位置,固然你也並沒必要擔憂證書的泄露問題,你的證書只會存在在內存中。code
假定前置條件是知足的,例如已經在某個新的 VPC 中準備好了自定義鏡像,而且新開第一臺主機做爲堡壘機,而且主機名命名爲 cx1ops00
,那麼cdn
ssh cx1ops00
複製代碼
應該能順利登陸到該主機。blog
堡壘機須要開啓SSH轉發,能夠修改堡壘機的 /etc/ssh/ssh_config
加入:
Host cc*
ForwardAgent yes
複製代碼
也能夠創建 ~/.ssh/config
加入該配置。
你能夠繼續開其它主機,這些主機都命名爲 cc1xxxxxx
,注意每臺主機的主機名和IP地址須要被寫入堡壘機的 /etc/hosts
文件中,或者是寫入到內網 DNS 服務器中。通常來講,咱們經過新建主機時的用戶自定義啓動腳原本完成該工做。
咱們如今須要完成通配符配置,修改 ~/.ssh/config
加入以下的配置文本:
Host cc*
PreferredAuthentications publickey
IdentityFile ~/.ssh/qcloud/tencent-cloud-newEcsDefault.dms
ProxyCommand ssh cx1ops00 exec nc %h %p
複製代碼
同樣的道理,證書文件的路徑你本身修正正確。
經過上面的通配符配置,咱們約定凡是ssh到雲主機名 cc*
的,一概藉助堡壘機 cx1ops00
轉發到雲端,至於確切的雲主機名的正確解釋,則交到堡壘機上去完成。所以,如今在本機上經過 ssh cc1web01
能夠直接鏈接到雲上的內網主機了。
經過堡壘機的鏈接,有一張圖,暫時沒有尋找到原始來源:
上面的方法,是用在我工做中的方法。DevOps 中 Ops 的基礎的基礎,就是如何便利地在各主機中巡航。