Skip to main content

此版本的 GitHub Enterprise Server 已于以下日期停止服务 2024-03-26. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

实例备份的已知问题

有关影响 GitHub Enterprise Server 备份或还原过程的问题,请参阅解决方法概述。

关于 GitHub Enterprise Server 备份的已知问题

GitHub 针对可能影响 GitHub Enterprise Server 实例的数据备份或还原的以下问题提供了解决方法。 有关详细信息,请参阅 GitHub Enterprise Server 发行说明中的“已知问题”。

还原备份后,用户无法登录

注意****:已在 GitHub Enterprise Server Backup Utilities 3.8.1 中修复这个已知问题。

如果使用 GitHub Enterprise Server Backup Utilities 3.7.0 或 3.8.0 来备份运行 GitHub Enterprise Server 3.7 或 3.8 系列任何版本的实例,则将备份还原到新实例后,用户将无法登录。 虽然用户无法登录,但备份本身不受影响,所有数据保持不变。

还原受此问题影响的现有备份后,可以通过修改新实例上的配置来解决此问题。

从现有备份还原

如果已将现有备份从 GitHub Enterprise Server Backup Utilities 3.8.0 还原到新实例,并且用户无法登录,则必须从源 GitHub Enterprise Server 实例输出配置数据,并调整目标实例上的配置。

若要确保用户可以登录到新的目标实例,请确保环境满足以下要求。

  • 源 GitHub Enterprise Server 实例必须运行并可通过 SSH 访问。
  • 必须具有来自 GitHub Enterprise Server Backup Utilities 3.7.0 or 3.8.0 的现有备份。
  • 必须预配了新的目标 GitHub Enterprise Server 实例并还原了备份。 有关详细信息,请参阅“设置 GitHub Enterprise Server 实例”和“在实例上配置备份”。
  1. 通过 SSH 连接到备份的源 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 将 HOSTNAME 替换为实例的实际主机名。 有关 SSH 访问权限的详细信息,请参阅“访问管理 shell (SSH)”。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 若要显示解密密钥的列表,请运行以下命令。

    Shell
    ghe-config secrets.github.encrypted-column-keying-material
    
  3. 将输出复制到安全的临时位置。

  4. 若要显示加密密钥的列表,请运行以下命令。

    Shell
    ghe-config secrets.github.encrypted-column-current-encryption-key
    
  5. 将输出复制到安全的临时位置。

  6. 通过 SSH 连接到还原备份的目标 GitHub Enterprise Server 实例。 将 HOSTNAME 替换为实例的实际主机名。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  7. 启用维护模式。 有关详细信息,请参阅“启用和排定维护模式”。

  8. 若要验证目标实例是否已准备好进行配置,请运行以下命令。 不应显示任何输出。

    Shell
    ghe-config secrets.github.encrypted-column-keying-material
    ghe-config secrets.github.encrypted-column-current-encryption-key
    
  9. 若要更新目标实例上的解密密钥,请运行以下命令。 将 DECRYPTION-KEY-LIST 替换为步骤 1 中的输出。

    Shell
    ghe-config secrets.github.encrypted-column-keying-material "DECRYPTION-KEY-LIST"
    
  10. 若要更新目标实例上的加密密钥,请运行以下命令。 将 ENCRYPTION-KEY 替换为步骤 4 中的输出。

    Shell
    ghe-config secrets.github.encrypted-column-current-encryption-key "ENCRYPTION-KEY"
    
  11. 若要应用配置,请运行以下命令。

    Shell
    ghe-config-apply
    
  12. 等待配置运行完毕。

  13. 若要确保目标实例的配置包含密钥,请运行以下命令,并验证输出是否与步骤 1 和步骤 4 匹配。

    Shell
    ghe-config secrets.github.encrypted-column-keying-material
    ghe-config secrets.github.encrypted-column-current-encryption-key
    
  14. 让用户登录到目标实例。 如果出现任何问题,请联系 GitHub Enterprise 支持。 有关详细信息,请参阅“联系 GitHub 支持”。