SSH (OpenSSH) 每次連線都會跑一些加解密、認證等等的機制,兩邊都有 Auth key 也是一樣,想要讓再次連線的速度更快,可以怎麼做呢?
SSH 可以透過使用 ControlMaster 來共享已經連線的資源,而且可以減少 TCP/IP 的數量,可以節省更多的資源
SSH 透過 ControlMaster 共享 已連接 的資源來快速連線
正常標準的 SSH 連線方式,若機器是 w1.example.com (以下以 w1 來簡稱)
- ssh w1 # 連接上去後
- exit # 結束連線會出現下述訊息 Connection to w1.example.com closed.
SSH 想要讓連線速度更快,可以依靠已經連線的資源,於 SSH config 要做下述設定
- vim ~/.ssh/config # 於檔案最下方輸入下述
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600 - mkdir -p ~/.ssh/sockets/
- ssh w1 # 先連線一個上去
- ssh w1 # 再嘗試連線上去,會發現連線速度異常的快速
- exit # 離開 w1,會出現下述的訊息
Shared connection to w1.example.com closed.
註:
- %r:使用者名稱
- %h:主機IP
- %p:Port
Step 2, mkdir -p ~/ssh/sockets/
少個 . -> mkdir -p ~/.ssh/sockets/
感謝,已補上~