2017-03-16 31 views
0

我目前正在从不受信任的计算机上工作,我想使用ssh身份验证从此(不可信)计算机提交/提交更改。我可以访问我的私人计算机(可信)。这里是我的设置内容摘要:从不受信任的计算机使用ssh私钥

  • 的Git服务器访问只使用ssh(不允许HTTPS验证)
  • 可信计算机访问到GIT服务器的SSH
  • 不可信计算机没有访问到git sever但访问我的信任的计算机

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

回答

1

您可能会尝试脱离使用您的可信计算机作为SSH jump host

this manual

到SSH隧道的另一种通过网关访问内部机器 使用跳跃主机。

想法是使用ProxyCommand在远程主机上自动执行ssh命令 跳转到下一个主机并转发所有通信。

这应该需要在SSH客户端周围编写一个包装脚本并设置GIT_SSH env。变量指向它—看到 在git help git“环境变量”部分:

GIT_SSHGIT_SSH_COMMAND

如果这些环境变量被设置,那么GIT中取和git推 将使用指定的命令而不是ssh,当他们需要 连接到远程系统。该命令将给出恰好两个 或四个参数:[email protected]从 URL和外壳命令到该远程系统上执行(或只是host) 任选被-p(字面)之前和从URL当端口 它指定了除默认SSH端口以外的其他内容。

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

通常通过 个人.ssh/config文件配置任何所需的选项更容易。请查阅您的ssh文档获取更多详细信息, 。

(我beleive的SSH_COMMAND是一个相当最近除了Git的。)

+0

谢谢您的回答。我发现了另一种解决方案,可能不如你说的那么安全,但是在我的设置中做了哪些工作。我只是使用由git服务器识别的私钥,但我使用强密码保护它以使其仅由我和其他用户访问。在这种情况下,您是否发现了其他威胁而非蛮力攻击? – LucG