无需身份验证即可在远程服务器上安全运行脚本

无需身份验证即可在远程服务器上安全运行脚本

我正在尝试为我的 gitosis 存储库设置一个 git 更新后钩子,以更新远程服务器上的工作副本。在远程服务器上运行脚本而无需身份验证的最佳和最安全的方法是什么,因为钩子将以一台计算机上的 gitosis 用户身份运行,而另一台计算机上没有对应用户。

我考虑过使用没有密码的公钥/私钥对,我使用它来让脚本自动更新本地服务器上的工作副本(对于 gitosis,而不是 ssh),但我有点犹豫是否使用相同的密钥通过 ssh 进行身份验证,因为如果私钥以某种方式被泄露,攻击者可以在没有身份验证的情况下登录。还是我太担心了,权限无论如何都会处理这个问题(私钥必须是 chmod 0600)?

答案1

“最佳和最安全的方法”可能是git pull在使用远程服务器的工作副本时执行操作,或者将服务器添加为 git“远程”并同时推送到它。

另一种方法是使用无密码公钥。我建议使用一个不同于其他密钥的密钥,并将 SSH 设置为仅允许使用该密钥登录时执行强制命令(command="...."假设您使用的是 OpenSSH,则将其添加到 authorized_keys 的选项部分),这样即使您的密钥他们所能做的就是更新你的 git 存储库。

答案2

我认为私钥/公钥方式是最常见的方式。我也会采用同样的方式。

相关内容