我有一个开发git服务器,当live
分支被推送到时,它会部署到实时服务器。每个用户都有自己的登录名,因此,post-receive
进行实时部署的挂钩是在其自己的用户下运行的。
因为我不想在远程实时服务器上维护用户的公共密钥作为授权密钥,所以我组成了一组“属于git系统的密钥”以添加到远程实时服务器上(在post-receive
钩子中,我正在使用$GIT_SSH
以使用-i
选项设置私钥)。
我的问题是,由于所有用户都可能想部署到现场,因此git系统的私钥必须至少是组可读的,而SSH确实不喜欢这样。
这是错误的示例:
XXXX@XXXX /srv/git/identity % ssh -i id_rsa XXXXX@XXXXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: id_rsa
我四处张望,期望找到某种方法来强制ssh进行连接,但是我什么也没发现,只有人们盲目地说您只允许访问一个用户而已。