自新 SSH 规则以来的备用 GitHub 部署选项

Alternate GitHub Deployment Options Since New SSH Rules

我一直在私人回购上使用 GitHub 一段时间,直到上周才出现问题,GitHub upped the minimum requirements on SSH encryption

事实是,我是 运行 OpenSSH 的旧副本,在较旧的 OS 版本上,TL;DR,我无法升级它以支持新标准(在至少,还没有)。

There are FTP actions available 作为替代方案,但显然 GitHub 操作不使用一致的 IP space 而且我也无法解除 100% 的 IP 限制来实现这一目标(出于显而易见的原因,我对此也不太满意)。

短期(不只是迁移所有内容),还有其他选项可以保留我刚刚忽略的 GitHub 吗?

如果您可以在您的环境中安装凭据帮助程序,则可以使用它。 gh cli comes with one, but it's not a standalone binary so you may have issues getting it working in an older environment. There's also the Git Credential Manager. You can see full instructions for using these in GitHub's docs.

您没有指定 OS 和您使用的 OpenSSH 版本,但如果您使用的是 OpenSSH 6.5 或更新版本,您可以使用 Ed25519 密钥 (ssh-keygen -t ed25519) 或者如果如果您使用的是 OpenSSH 5.7 或更新版本,则可以使用 ECDSA 密钥 (ssh-keygen -t ecdsa)。如果您收到关于使用 SHA-1 的 RSA 密钥的消息,这些将对您有用。

但是,如果您使用的是旧版本,例如 OpenSSH 5.3(例如,因为您使用的是 CentOS 6),那么您可以尝试构建最新版本的 PuTTY 并将其用作您的Git 通过 core.sshcommandGIT_SSH_COMMAND 支持的 SSH 客户端。

您也可以尝试使用带有某种令牌的 HTTPS。 Git枢纽has docuemntation about types of tokens you can use for automated deployments. However, that does require that you use a TLS library with support for TLS 1.2, which for OpenSSL, is 1.0.1 or later. The Git FAQ also explains how to use a credential helper to read from the environment。如果你使用的是像 CentOS 5 这样的 OS,它不支持 TLS 1.2,那么真的别无选择,你必须将系统升级到相当现代的 OS.

你应该避免 FTP。 FTP 存在各种功能问题,例如使用不同的端口进行连接,而且由于实施错误,它也极难通过 TLS 正确保护。因此,它不是一种安全的数据传输方式,尤其是您计划在系统上执行的任何操作。