目前我正在同一服务器上配置SFTP和本地git存储库。将有两种类型的群组:sftp-users
& git-users
。我仅使用sftp-usres
将home
限制在ChrootDirectory %h
个目录中。现在当我只允许sftp-users
使用SFTP(下载/查看文件)时,它不允许git-users
通过putty登录或在客户端克隆项目。
那么在同一服务器中配置这两种类型的组的最佳方法是什么,以便git-users
无法通过FTP客户端查看代码存储库?任何建议都将受到高度赞赏!!!
答案 0 :(得分:1)
我说你在Git方面做错了。
而不是实现SSH访问的实际系统登录
(你所说的"通过putty&#34登录;),
建议创建一个单一的虚拟"用户
(通常称为git
)
并让所有Git用户使用该单个用户
使用SSH登录系统 -
同时有一定的手段
根据 SSH密钥区分不同的用户。
这种区分通常使用
gitolite
(通常只是apt install gitolite
)。
这个想法是每个不同的Git用户都有自己的用户
SSH密钥,以及服务器上的虚拟系统用户git
将gitolite
提供的内容设置为其登录shell。
每个Git用户都以git@server
身份登录,但使用自己的SSH密钥
用于身份验证将用户登录后,SSH服务器
调用gitolite
,它使用自己的用户映射'按键
对于个人用户,在某种意义上是纯粹的虚拟
他们在服务器上没有帐户。
这使您可以将Git托管与SFTP托管完全分离。
另一种可能的解决方案是通过HTTP提供Git存储库 而不是SSH。然后,您可以使用任何HTTP服务器的方法 验证您的用户,再次允许解耦 Git用户和SFTP用户的数据库。 (但他们可以使用相同的身份验证后端,比如PAM, 如果需要 - 请参阅this以获取一个示例。)
顺便说一句,your question if offtopic on SO; 请使用ServerFault来解决与您类似的问题 (致力于软件配置/管理问题)。