我目前正在处理来自不受信任的计算机的项目,我想使用ssh身份验证从此(不受信任的)计算机提取/提交更改。我可以访问我的私人(可信)计算机。以下是我的设置摘要:
在这种情况下你会做什么? (我无法将文件从不受信任的计算机复制到受信任的计算机。我希望此项目的文件保留在不受信任的计算机上,但如果我实际上不存储它们,我可以将它们发送到受信任的计算机)。他们的主要想法是,我不希望其他人使用不受信任的计算机访问我在git服务器上的其他项目。
答案 0 :(得分:1)
您可能会尝试使用受信任的计算机作为SSH jump host。
引用this manual:
SSH隧道访问内部计算机的替代方法 通过网关使用跳转主机。
想法是使用
ProxyCommand
自动执行ssh命令 在远程主机上跳转到下一个主机并转发所有流量。
这应该要求在SSH客户端周围编写一个包装器脚本并设置GIT_SSH
env。变量指向它 - 看
"环境变量" git help git
中的部分:
GIT_SSH
,GIT_SSH_COMMAND
如果设置了这些环境变量中的任何一个,那么git fetch和git push 将在需要时使用指定的命令而不是ssh 连接到远程系统。该命令将给出两个 或四个参数:来自
username@host
(或只是host
) 要在该远程系统上执行的URL和shell命令, 可选地前面有-p
(字面意思)和端口 从URL指定除默认SSH端口以外的其他内容。
$GIT_SSH_COMMAND
优先于$GIT_SSH
, 并由shell解释,允许额外的 要包括的论点。另一方面,$GIT_SSH
必须是 只是程序的路径(可以是包装器shell) 脚本,如果需要其他参数)。通常,您可以更轻松地配置任何所需的选项 个人
.ssh/config
文件。请查阅您的ssh文档 进一步的细节。
(我相信SSH_COMMAND
是最近Git的补充。)