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

时间:2016-01-05 16:59:04

标签: git ssh gitlab shared-hosting ssh-keys

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

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

有没有办法阻止这种情况?

1 个答案:

答案 0 :(得分:2)

如果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 =')