我有一个开发 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
Run Code Online (Sandbox Code Playgroud)
我环顾四周,希望能找到强制 ssh 通过连接的方法,但我什么也没找到,但人们盲目地说除了单个用户外,您不应该允许访问任何内容。