【问题标题】:Forward an HTTP client certificate through SSH通过 SSH 转发 HTTP 客户端证书
【发布时间】:2019-09-28 05:35:13
【问题描述】:

我有一个 git 存储库,访问它的唯一方法是使用 HTTP 客户端证书通过 HTTPS。这在我的本地机器上运行git clonegit push 等时工作得很好。

我也想在通过 SSH 访问的远程计算机上执行此操作,但我无法将客户端证书放在远程计算机上。有没有办法以与 SSH 代理转发类似的方式转发 HTTP 客户端证书。

【问题讨论】:

  • TLS 客户端证书必须与相关的密钥一起保存在您的本地计算机上。您提出的问题违反了推荐的 TLS 客户端证书用法。
  • 能否请您附上表明不推荐这样做的参考资料?
  • 不建议将客户端证书的私钥放在其他人可以读取的机器上。
  • 对。我明白那个。这就是问题的重点。我如何进行转发,这样我就不需要将客户端证书的私钥放在远程机器上?我可以使用ssh -A 使用 ssh 密钥来完成此操作。我该如何使用 http 客户端证书?还是不可能?

标签: git ssh client-certificates


【解决方案1】:

Git 要求客户端证书位于本地文件系统上,因为它无法从其他地方读取它们(系统凭据存储除外,然后仅在某些配置中的某些操作系统上)。

如果远程计算机在同一个网络上,您可以使用 sshfs 之类的东西从远程计算机连接回您的笔记本电脑,并将带有证书的本地文件系统的一部分挂载为网络文件系统。您也可以尝试在本地计算机上而不是远程计算机上进行克隆,然后推送到远程计算机(在远程存储库上将 receive.denyCurrentBranch 设置为 updateInstead 之后)。

除此之外,没有办法做你想做的事。

【讨论】:

    猜你喜欢
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    相关资源
    最近更新 更多