gpt4 book ai didi

ssh - 具有工作 key 的普通 gitlab 用户无法使用 PubkeyAuthentication 登录到 bash shell 提示符

转载 作者:行者123 更新时间:2023-12-02 14:02:11 25 4
gpt4 key购买 nike

在服务于 gitlab 的 Ubuntu 服务器 'foo.com' 上,gitlab 用户 'bar' 可以克隆、推送和拉取而无需使用密码,没有问题(在 gitlab 服务器上设置了公钥对于用户'bar')。

用户 'bar' 想要使用服务器 'foo' 上的命令行,并执行 ssh bar@foo.com .当用户 'bar 的 ssh key 不在 'foo' 的 authorized_keys 中时, 'bar' 会暂时记录到 Gitlab 中:

debug2: shell request accepted on channel 0
Welcome to GitLab, bar

然后该 session 立即退出。

当用户 'bar 的 ssh key (即使是未在 GitLab 注册的 key )位于 'foo.com' 的 authorized_keys 中时,那么该用户在执行 ssh bar@foo.com 时会得到预期的结果.但是,然后用户 bar (在他们的本地计算机上)无法从他们的 gitlab 管理的存储库中推送、拉取、克隆等,错误消息是“'some-group/some-project.git' 似乎不是 git 存储库”。

似乎存在配置错误,使得 shell 访问与 gitlab 项目访问混为一谈。

用户 'foo' 如何既能通过 ssh 登录到常规的 shell 提示符又能正常使用 git(从本地机器与远程 git 服务器交互)?

最佳答案

经过大量搜索后,我才知道为什么会发生这种情况。我遇到过同样的问题。我想对 SSH 登录和 GitLab 访问使用相同的 SSH key 。

我发现这个线程很有帮助:
https://gist.github.com/hanseartic/368a63933afb7c9f7e6b

authorized_keys 文件,gitlab-shell 输入特定的命令来限制访问。一旦用户通过 Web 界面输入公钥,它就会增加限制。它使用 command选择这样做。

我们需要修改 command允许访问 bash 的选项并记得删除 no-pty 的选项如果在逗号分隔的部分中列出。例如,在我的情况下,我在以下行中有这个:no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty并且不得不从列表中删除 no-pty。

修改后的示例命令应如下所示:

command="if [ -t 0 ]; then bash; else /home/ec2-user/gitlab_service/gitlab-shell/bin/gitlab-shell key-11; fi",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAA...

需要注意通过检查与命令关联的 key 号或公钥和用户名来编辑正确的命令。

这不需要任何服务重新启动。

关于ssh - 具有工作 key 的普通 gitlab 用户无法使用 PubkeyAuthentication 登录到 bash shell 提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com