我有一个开发git服务器,在推送实时分支时部署到实时服务器.
每个用户都有自己的登录,因此实时部署的post-receive hook在他们自己的用户下运行.
因为我不想将用户公钥维护为远程实时服务器上的授权密钥,所以我已经编写了一组密钥,这些密钥属于git系统以添加到远程实时服务器(在post-receive hook中)我使用$GIT_SSH来设置带有-i选项的私钥).
我的问题是,由于所有用户可能希望部署为live,因此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的方式来解决这个问题,但我找不到任何东西,只是人们盲目地说你不应该只允许访问除了单个用户之外的任何东西.