ssh:已知主机转发

ssh:已知主机转发

运行带有代理转发的 ssh。这样我就可以从我已获得授权的系统(基于我的本地)从我的服务器执行 hg/git pull。

IE

ssh -A myserver
hg clone ssh://myreposerver/repo

但是,我的本地 known_hosts 未用于清除已知主机。这意味着我必须在验证主机正确后输入“yes”。这本身并不是什么大问题,但我正在自动执行所有这些操作,因此我永远看不到输入提示。

即我确实在这样做:

ssh -A myserver "hg clone ssh://myreposerver/repo"

当然,我可以简单地复制整个 known_hosts 文件,但这样做并不优雅,而且本身也会导致维护问题。例如,每个项目都在自己的用户帐户上运行以提供额外的安全保护,而我不想将 known_hosts 文件复制到每个用户。

关于如何进行“known_hosts”转发,您有什么想法吗?

=====

编辑解决方法:

ssh -t -A myserver "hg clone ssh://myreposerver/repo"

强制伪 tty 分配,这意味着实际上我至少可以向远程调用发送“是” ssh(它本身被调用hg

答案1

为了实现自动化,您还可以在克隆存储库时禁用 ssh 中的已知主机检查。

Git 允许使用GIT_SSH_COMMAND环境变量自定义 ssh 命令。要禁用已知主机检查,您必须按如下方式设置:GIT_SSH_COMMAND='ssh -o StrictHostKeyChecking=no'

OP 的完整命令如下:

ssh -A myserver "GIT_SSH_COMMAND='ssh -o StrictHostKeyChecking=no' git clone ssh://myreposerver/repo"

在执行此操作之前,请确保您熟悉禁用严格主机检查的安全风险,或者确保您仅在内部基础设施内执行此操作。

相关内容