GitLab:使用密钥进行 SSH 访问而不授予对整个网络服务器的访问权限
GitLab: SSH access with key without granting access to whole webserver
标题听起来很复杂,但我的问题很简单,只是我无法解决。
我在共享主机上。 gitlab 的一个实例是 运行 除了一些其他东西之外,可以从子域 (https://git.mydomain.com) 访问。在我的 GitLab 配置文件页面上添加 ssh-keys 时,我还可以在我的网络服务器提供商 WebInterface 上看到它们。因为我在共享主机上,所以我只有默认用户。这意味着,如果用户将 ssh 密钥添加到他们的配置文件中,他们也将能够毫无问题地访问网络服务器,因为他们的密钥已添加到我的用户 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=')
标题听起来很复杂,但我的问题很简单,只是我无法解决。
我在共享主机上。 gitlab 的一个实例是 运行 除了一些其他东西之外,可以从子域 (https://git.mydomain.com) 访问。在我的 GitLab 配置文件页面上添加 ssh-keys 时,我还可以在我的网络服务器提供商 WebInterface 上看到它们。因为我在共享主机上,所以我只有默认用户。这意味着,如果用户将 ssh 密钥添加到他们的配置文件中,他们也将能够毫无问题地访问网络服务器,因为他们的密钥已添加到我的用户 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=')