【问题标题】:Determine virtual host name on SSH connection (would be useful for virtual git hosting)确定 SSH 连接上的虚拟主机名(对虚拟 git 托管很有用)
【发布时间】:2013-03-21 21:33:19
【问题描述】:

我正在寻找一种方法来执行 HTTP Host: 标头的功能,但 SSH 除外。

假设foo.example.combar.example.com 都解析为1.2.3.4。我怎样才能知道登录是通过ssh git@foo.example.com 而不是ssh git@bar.example.com

我找到了$SSH_CONNECTION,但它只有客户端和服务器的 IP 地址,没有主机名。

附:我真正要问的是如何通过 SSH 传输使 git 虚拟主机工作。我的客户不是直接ssh,而是git调用ssh。我了解虚拟 git 托管可能可以通过 HTTP(使用 Host:)和 git-daemon(似乎被告知主机名是什么)工作。但是 SSH 呢?否则我如何使(安全)提交在虚拟主机环境中工作?

如果不是:任何可以近似此的组合?

【问题讨论】:

    标签: git networking ssh


    【解决方案1】:

    简单的答案是否定的,openSSH afaik 没有等效的虚拟主机。

    问题实际上归结为您想向通过foo.example.combar.example.com 登录的客户呈现什么不同?

    我猜您只是想提供 2 组独立的根目录,用于根据客户使用的主机托管 git 存储库。如果是这种情况,您可以要求每个用户使用不同的用户名,从而他们可以访问具有适当隔离权限的不同主目录。 git只是使用SSH协议在服务器上存储文件,所以应该是真正透明的。

    如果您的案例涉及在单个 Xen 或同等服务器上拥有多个虚拟机,那么您可以考虑按照this 帖子中的说明从您的 Xen 服务器设置到多个虚拟机的 SSH 网关。

    【讨论】:

      【解决方案2】:

      (未来的答案) 去年似乎有一个discussion 将其添加到 SSH。对于openssh 实现的建议是使用环境变量,以便在服务器上运行的脚本可以知道正在访问哪个虚拟主机。

      【讨论】:

      • 链接已损坏。你能更新链接吗?
      猜你喜欢
      • 2016-05-24
      • 2022-01-24
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 1970-01-01
      相关资源
      最近更新 更多