Ssh

無需身份驗證即可在遠端伺服器上執行腳本的安全方式

  • March 10, 2010

我正在嘗試為我的 gitosis 儲存庫設置一個 git post-update 掛鉤,以更新遠端伺服器上的工作副本。在不需要身份驗證的情況下在遠端伺服器上執行腳本的最佳和最安全的方法是什麼,因為鉤子將在一台機器上以 gitosis 使用者身份執行,而另一台機器上沒有對應的使用者。

我考慮使用沒有密碼的公鑰/私鑰對,這是我用來讓腳本自動更新本地伺服器上的工作副本的方法(對於 gitosis,而不是 ssh),但我有點猶豫是否使用相同的密鑰用於通過 ssh 進行身份驗證,因為如果私鑰以某種方式被洩露,攻擊者可以在不進行身份驗證的情況下登錄。還是我太擔心了,這是權限無論如何都會處理的事情(私鑰必須是 chmod 0600)?

“最好和最安全的方法”可能是git pull在您使用遠端伺服器的工作副本時執行,或者將伺服器添加為 git“遠端”並同時推送到它。

作為替代方案,無密碼的公鑰將起作用。我建議您使用與其他任何東西不同的密鑰並設置 SSH 以僅在您使用該密鑰登錄時允許強制命令(添加command="...."到 authorized_keys 的選項部分,假設您使用的是 OpenSSH),即使您密鑰洩露,他們所能做的就是更新您的 git 儲存庫。

引用自:https://serverfault.com/questions/121209