【问题标题】:SFTP subsystem needs to read the server hostnameSFTP子系统需要读取服务器主机名
【发布时间】:2014-12-17 04:20:36
【问题描述】:

我正在编写一个新的 SFTP 子系统,它不是从本地文件系统读取文件,而是从 API 接口读取。在这里,我能够实现 SFTP 子系统。但我想获取 SFTP 用户用来连接我的 SFTP 服务器的 FQDN。

要提供有关我的方案的更多详细信息...

我的 SFTP 服务器将有两个或多个 CNAME(别名)记录。例如,如果服务器名称为sftp-testdomain.com,则可以使用sample1.sftp-testdomain.comsample2.sftp-testdomain.com CNAME。我想在 SFTP 子系统中获取 FQDN,以便在启动 SFTP 服务器之前执行一些检查。

谁能帮我指出一些参考资料或提供有关此要求可行性的一些详细信息?

【问题讨论】:

    标签: ssh dns sftp fqdn


    【解决方案1】:

    SSH 服务器(只允许 SFTP 子系统)永远不会学习客户端用来查找服务器 IP 地址的主机名。

    所有通信仅使用 IP 地址进行。

    SSH/SFTP 缺少一种机制来为服务器提供主机名以支持虚拟服务器,而 HTTP 或 FTP 协议具有(分别为 Host headerHOST command)。

    即使有这样的机制,您也可能无法使用提供的主机名进行安全检查。客户端完全可以随意选择哪个服务器别名来提供给服务器。


    因此,唯一的解决方案是使用 IP 地址或端口号来区分实例。或者将主机名包含在用户名中(例如 user@hostuser_host)。

    如果您正在为 OpenSSH SSH 服务器编写子系统,您可以从 SSH_CONNECTION 环境变量中找到用于连接 SSH 服务器的 IP 地址和端口。

    用户名在USERLOGNAME 变量中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 2012-01-16
      • 2021-12-29
      • 2012-09-15
      • 2011-05-17
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多