【问题标题】:How is it possible to use SSH key if I connect to a repository using https?如果我使用 https 连接到存储库,如何使用 SSH 密钥?
【发布时间】:2020-04-29 00:54:32
【问题描述】:

公司防火墙只允许 https 连接到 github.com(没有 ssh),所以我添加了这样的存储库:

git remote add origin https://github.com/myProject.git

不幸的是,如果我打电话给git push,github 会询问我的用户名和密码。我已经使用ssh-keygen 创建了一个 ssh 密钥。

如何在 https 存储库中使用 SSH 密钥?


我试过SSh over HTTPS

ssh -T -p 443 git@ssh.github.com

但我收到此错误:

ssh: connect to host ssh.github.com port 443: Connection refused

【问题讨论】:

  • 不是SSH over HTTPS,而是SSH over the HTTPS port。协议仍然是 SSH,只是使用的端口从 22 更改为 443。

标签: git github ssh https


【解决方案1】:

该错误可能是因为ssh.github.com 是一个专用服务器(我认为其中有几个,并且它目前解析为两个不同的 IP 地址),并且您公司的防火墙据说只将与“基本”github.com 的连接列入白名单解析为一组与ssh.github.com 不同的主机。
这是必需的,因为在这两种情况下,处理相同端口上的传入连接的服务器端软件必须不同(SSH 服务器与使用 HTTPS 的 Web 服务器)。

至于您的一般问题 - 不,这是不可能的:SSH(Secure SHell 协议和 HyperText Ttransfer Protocol, Secure) 除了它们都提供安全性之外,彼此之间没有任何关系(身份验证和机密性)他们管理的通信渠道。

【讨论】:

  • @iter-ator,如果您最初的问题是每次通过 HTTPS 访问 github 存储库时都需要输入密码,您可以考虑使用 Git 的“凭据缓存”,它可以设置为将您的凭据保存在内存中一段可配置的时间。见git help credentials。这不完全是一个解决方案,但总比没有好。 (并且使用 SSH 密钥,您在将它们添加到 SSH 代理时仍然需要对其进行解密,这基本上是相同的。)
猜你喜欢
  • 2021-10-24
  • 1970-01-01
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 2014-10-13
  • 2021-01-15
  • 2022-10-23
  • 2021-06-25
相关资源
最近更新 更多