GitLab:使用密钥进行SSH访问,而不授予对整个Web服务器的访问权限



标题听起来很复杂,但我的问题非常简单,只是我无法解决。

我在共享主机上。gitlab的一个实例正在运行,并且可以从子域访问(https://git.mydomain.com)。在我的GitLab Profile页面上添加ssh密钥时,我也可以在Web服务器的提供商WebInterface上看到它们。因为我使用共享主机,所以我只有默认用户。这意味着,如果用户将ssh密钥添加到他们的配置文件中,他们也将能够毫无问题地访问Web服务器,因为他们的密钥已添加到我的users-authorized_keys文件中。

有办法防止这种情况发生吗?

如果GitLab用户在他们的配置文件中上传ssh密钥,这些密钥将显示在authorized_keys中,但是,它们应该在密钥之前包括以下内容:command="/path-to-shell/gitlab-shell/bin/gitlab-shell key-id",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

这将使用该密钥的用户限制为只能访问该命令,而其他参数旨在确保他们无法通过服务器访问终端或代理。

来源:http://man.he.net/man5/authorized_keys(搜索'command=')

最新更新