无需身份validation即可在远程服务器上运行脚本的安全方式

我正在尝试为我的gitosis存储库设置一个git post-update钩子来更新远程服务器上的工作副本。 什么是在远程服务器上运行脚本而无需身份validation的最好和最安全的方式,因为钩子将作为一台机器上的gitosis用户运行,而在另一台机器上没有对应的gitosis用户。

我考虑使用没有密码的公共/私人密钥对,这是我用脚本自动更新本地服务器上的工作副本(gitosis,而不是SSH),但我有点犹豫,使用相同的密钥用于通过ssh进行身份validation,因为如果私钥被某种方式破坏,攻击者无需进行身份validation就可以login。 还是我担心太多了,这是权限将照顾无论如何(私钥必须是chmod 0600)?

当你使用远程服务器的工作拷贝时,“最好和最安全的方式”可能是做一个git pull ,或者把服务器作为git“remote”来添加并同时推送。

作为替代无密码的公共密钥的东西将工作。 我build议使用不同的密钥,而不是用于其他任何设置SSH,只允许当您使用该密钥login时执行强制命令(将command="...."添加到authorized_keys的选项部分(假设您正在使用OpenSSH),那样的话,即使你的密钥破解了,他们所能做的就是更新你的git仓库。

我认为私钥/公钥方式是最常见的做这样的事情。 我会以同样的方式。