【问题标题】:Use ssh private key from untrusted computer使用来自不受信任计算机的 ssh 私钥
【发布时间】:2017-08-07 12:09:26
【问题描述】:

我目前正在不受信任的计算机上处​​理一个项目,我想使用 ssh 身份验证从这台(不受信任的)计算机上提取/提交更改。我可以访问我的私人(受信任)计算机。以下是我的设置摘要:

  • Git 服务器只能通过 ssh 访问(不允许 https 身份验证)
  • 受信任的计算机可以通过 ssh 访问 git 服务器
  • 不受信任的计算机无法访问 git 服务器但可以访问我受信任的计算机

在这种情况下你会怎么做? (我无法将文件从不受信任的计算机复制到受信任的计算机。我希望此项目的文件保留在不受信任的计算机上,但如果我实际上不存储它们,我可以将它们发送到受信任的计算机)。他们的主要想法是我不希望其他人使用不受信任的计算机访问我在 git 服务器上的其他项目。

【问题讨论】:

    标签: git authentication ssh trust


    【解决方案1】:

    您可以尝试使用您信任的计算机作为SSH jump host 逃脱。

    引用this manual

    SSH 隧道访问内部机器的替代方法 通过网关正在使用跳转主机。

    思路是使用ProxyCommand自动执行ssh命令 在远程主机上跳转到下一个主机并转发所有流量。

    这可能需要围绕 SSH 客户端编写一个包装脚本并设置 GIT_SSH 环境。指向它的变量——见 git help git 中的“环境变量”部分:

    GIT_SSH, GIT_SSH_COMMAND

    如果设置了这些环境变量中的任何一个,则 git fetch 和 git push 将在需要时使用指定的命令而不是 ssh 连接到远程系统。该命令将恰好给出两个 或四个参数:来自 URL 和要在该远程系统上执行的 shell 命令, 可选地在-p(字面意思)和端口之前 当 URL 指定默认 SSH 端口以外的其他内容时,来自 URL。

    $GIT_SSH_COMMAND 优先于$GIT_SSH, 并由 shell 解释,这允许额外的 要包括的论据。另一方面,$GIT_SSH 必须是 只是程序的路径(可以是包装外壳 脚本,如果需要额外的参数)。

    通常,通过您的 个人.ssh/config 文件。请查阅您的 ssh 文档以了解 更多细节。

    (我相信SSH_COMMAND 是最近才添加到 Git 中的。)

    【讨论】:

    • 感谢您的回答。我找到了另一种解决方案,它可能不如您所说的安全,但可以在我的环境中完成工作。我只是使用 git 服务器识别的私钥,但我用强密码保护它,以使其只能由我访问,其他用户不能访问。在这种情况下,除了暴力攻击之外,您还看到其他威胁吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2014-02-14
    • 2019-05-02
    • 1970-01-01
    • 2021-06-16
    • 2012-05-21
    • 2022-01-26
    相关资源
    最近更新 更多