AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 772514
Accepted
John McGehee
John McGehee
Asked: 2016-04-24 17:32:18 +0800 CST2016-04-24 17:32:18 +0800 CST 2016-04-24 17:32:18 +0800 CST

恢复 GitLab 备份后,新的 SSH 公钥随机取代其他用户的现有密钥

  • 772

这发生在 GitLab 8.6.4 的新(未升级)安装中。

我安装了 GitLab,我的团队对其进行了评估。当然,我和其他人输入了我们的 SSH 公钥。

作为我们评估的一部分,我做了一个 GitLab 备份并恢复了它。

恢复备份后,新用户 Shung Wang 输入了他的 SSH 公钥。

现在,每当我尝试通过 SSH 访问 git 存储库时,服务器都会认为我是 Shung Wang。例如,当我从我的 Ubuntu 14.04 笔记本电脑测试我的 SSH 连接时,我得到了这个:

ssh -T git@gitserver Welcome to GitLab, Shung Wang!

作为第二个测试,我尝试克隆一个 Shung 无权访问的私有存储库:

git clone git@gitserver:sw/devops.git Cloning into 'devops'... GitLab: The project you were looking for could not be found. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

然后我让 Shung 成为 devops 项目的成员,并且git clone成功了。我真的以 Shung Wang 的身份访问 GitLab 存储库。

显然,这是一个最不能令人满意的安全局势。除了 Shung Wang,我如何以我自己的身份访问 GitLab 存储库?

gitlab ssh-keys
  • 1 1 个回答
  • 1073 Views

1 个回答

  • Voted
  1. Best Answer
    John McGehee
    2016-04-26T18:49:14+08:002016-04-26T18:49:14+08:00

    解释

    GitLab 维护文件~git/.ssh/authorized_keys,它在其中为每个 SSH 公钥命名key-1,key-2等等。

    备份还原后,名称将重置为key-1,因此后续键具有重复名称。这是我的~git/.ssh/authorized_keys文件,显示了我的密钥和 Shung Wang 的密钥,它们都命名为key-1:

    # Managed by gitlab-shell
    command="/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell key-1",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAA...2SkSQ== [email protected]
    ###################################################################################################################################################################################
    #####################################################################################################################################################################################
    command="/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell key-1",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAA...nKQ== [email protected]
    ...
    

    key-1显然,我和 Shung 都使用了最后一次出现的。

    我在GitLab 问题 1263中报告了这个 GitLab 错误。

    解决方法

    在修复错误之前,用户可以尝试这些变通方法。

    解决方法 1

    用于重建文件sudo gitlab-rake gitlab:shell:setup_authorized_keys

    解决方法 2

    我建议先尝试解决方法 1。

    以下是我在发现解决方法 1 之前自己实际做的事情。

    1. 恢复备份后,以某个现有用户身份登录并注册新的 SSH 公钥
    2. 搜索文件~git/.ssh/authorized_keys。key-1如果你找到两个,你就有上面描述的问题。
    3. 那些线条######...不是装饰。它们是被用户删除的键。当一个键被删除时,GitLab 用一个 替换其中的每个字符#,大概是这样剩余的键就不会在文件中移动。将备份还原之前创建的所有 SSH 密钥中的所有字符替换#为类似于上~git/.ssh/authorized_keys图所示的字符。
    4. 告诉所有用户他们必须重新输入他们的 SSH 公钥。如果他们抱怨,提醒他们感谢其余的备份工作。

    与其在步骤 3 中进行所有繁琐的编辑,我怀疑您可以简单地将文件移到~git/.ssh/authorized_keys一边并用一个空文件替换它,然后告诉每个人重新输入他们的 SSH 公钥。但是我自己没有尝试过。如果这对您有用,请在评论中告诉我们。

    • 1

相关问题

  • 设置gitlab外部web端口号

  • 使用 GitLab,API 列表中缺少项目

  • 在现有 gitlab 中创建备份并在新的 gitlab 服务器中恢复相同备份的最佳方法是什么?[关闭]

  • 在 Debian 6.0.5 上安装 gitlab

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve