Unix
如何管理憑據/訪問多個 ssh 伺服器
我想製作一個可以通過 SSH 維護多個伺服器的腳本。我想以這樣一種方式控制身份驗證/授權,即身份驗證由網關完成,任何其他訪問都通過此 ssh 伺服器路由到內部服務,而無需任何進一步的身份驗證/授權要求。
因此,例如,如果使用者 A 可以登錄到 server_1。然後他可以在沒有任何其他身份驗證的情況下 ssh 到 server_2,並執行他在 server_2 上被允許執行的任何操作(例如關閉 mysql,升級並重新啟動它。這可以通過一些遠端 shell 腳本來完成)。
我試圖解決的問題是為涉及數據庫和 tomcat 實例的 JavaEE 系統提出一個部署腳本。他們需要關閉並重新生成。要求是有一個部署腳本,它對開發人員和操作人員的互動盡可能少。
您不應該在這裡重新發明輪子,否則從長遠來看,您只會為自己做更多的工作並引入新的安全問題。想到的兩個選項是:
- 編寫一組 API 來處理您需要處理的操作,然後將其託管在網關上並添加身份驗證。擁有這樣的系統,而不是嘗試將 ssh 與您自己的安全機制一起使用,將大大降低漏洞級別,並使其更容易在各種平台上實現。
- 配置基於密鑰的身份驗證、
ssh-agent
在客戶端上使用和允許到最終目的地的代理轉發的組合,以便您可以根據本地解鎖的密鑰從一個到下一個進行 SSH。