Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – SSH不允许使用具有组可读权限的密钥大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个开发git服务器,在推送实时分支时部署到实时服务器. 每个用户都有自己的登录,因此实时部署的post-receive hook在他们自己的用户下运行. 因为我不想将用户公钥维护为远程实时服务器上的授权密钥,所以我已经编写了一组密钥,这些密钥属于git系统以添加到远程实时服务器(在post-receive hook中)我使用$GIT_SSH来设置带有-i选项的私钥). 我的问题是,由于所有用
我有一个开发git服务器,在推送实时分支时部署到实时服务器.
每个用户都有自己的登录,因此实时部署的post-receive hook在他们自己的用户下运行.

因为我不想将用户公钥维护为远程实时服务器上的授权密钥,所以我已经编写了一组密钥,这些密钥属于git系统以添加到远程实时服务器(在post-receive hook中)我使用$GIT_SSH来设置带有-i选项的私钥).

我的问题是,由于所有用户可能希望部署为live,因此git系统的私钥必须至少是组可读的,而SSH实际上并不喜欢这样.

以下是错误例:

@H_772_23@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的方式来解决这个问题,但我找不到任何东西,只是人们盲目地说你不应该只允许访问除了单个用户之外的任何东西.

解决方法

这是一个简单而安全的好方法.

为ssh传输创建一个新用户,我称之为git-sync.在服务器上创建具有git存储库的组成员身份的类似用户.将sync-user的公钥添加到该用户authorized_keys2文件中.我假设git用户都是gitgroup的成员.确保git-sync用户也是该组的成员.

现在编辑/ etc / sudoers文件以包含如下行:

@H_772_23@%gitgroup ALL=(git-synC) NOPASSWD: /usr/bin/git

这将允许gitgroup组的任何成员在没有密码的情况下以git-sync运行命令/usr/bin/bit.

现在把这样的东西放在你的post-receive钩子里:

@H_772_23@sudo -u git-sync /usr/bin/git push origin

大佬总结

以上是大佬教程为你收集整理的linux – SSH不允许使用具有组可读权限的密钥全部内容,希望文章能够帮你解决linux – SSH不允许使用具有组可读权限的密钥所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。