Linux - 如何配置SFTP服务器以及Local Git存储库

时间:2017-10-04 05:26:22

标签: git unix hosting sftp

目前我正在同一服务器上配置SFTP和本地git存储库。将有两种类型的群组:sftp-users& git-users。我仅使用sftp-usreshome限制在ChrootDirectory %h个目录中。现在当我只允许sftp-users使用SFTP(下载/查看文件)时,它不允许git-users通过putty登录或在客户端克隆项目。

那么在同一服务器中配置这两种类型的组的最佳方法是什么,以便git-users无法通过FTP客户端查看代码存储库?任何建议都将受到高度赞赏!!!

1 个答案:

答案 0 :(得分:1)

我说你在Git方面做错了。

而不是实现SSH访问的实际系统登录 (你所说的"通过putty&#34登录;), 建议创建一个单一的虚拟"用户 (通常称为git) 并让所有Git用户使用该单个用户 使用SSH登录系统 - 同时有一定的手段 根据 SSH密钥区分不同的用户。

这种区分通常使用 gitolite (通常只是apt install gitolite)。

这个想法是每个不同的Git用户都有自己的用户 SSH密钥,以及服务器上的虚拟系统用户gitgitolite提供的内容设置为其登录shell。 每个Git用户都以git@server身份登录,但使用自己的SSH密钥 用于身份验证将用户登录后,SSH服务器 调用gitolite,它使用自己的用户映射'按键 对于个人用户,在某种意义上是纯粹的虚拟 他们在服务器上没有帐户。

这使您可以将Git托管与SFTP托管完全分离。

另一种可能的解决方案是通过HTTP提供Git存储库 而不是SSH。然后,您可以使用任何HTTP服务器的方法 验证您的用户,再次允许解耦 Git用户和SFTP用户的数据库。 (但他们可以使用相同的身份验证后端,比如PAM, 如果需要 - 请参阅this以获取一个示例。)

顺便说一句,your question if offtopic on SO; 请使用ServerFault来解决与您类似的问题 (致力于软件配置/管理问题)。