SSH协议确定客户端使用的主机名

时间:2017-11-08 16:05:49

标签: ssh paramiko openssh

我正在尝试创建一个SSH服务器(使用Paramiko,但这在这里几乎无关紧要)。我想知道是否有任何方法来确定SSH客户端请求的主机名。例如,如果我要与

连接
ssh user@example.com

但我也有一个指向同一服务器的CNAME记录,所以我也可以用

连接
ssh user@foo.com

然后我希望服务器在第一种情况下知道用户请求example.com,在第二种情况下,foo.com

我一直在阅读SSH协议文档,如:

https://tools.ietf.org/html/rfc4253 https://tools.ietf.org/html/rfc4252

但是无法确定是否有办法做到这一点。

1 个答案:

答案 0 :(得分:0)

通常,ssh协议不支持此功能。给定的ssh客户端可能会发送一个环境变量来提供一个提示,但是这会在密钥交换和用户身份验证之后发生,这将远远超过您想要的信息。如果您通过RFC 4462中描述的ssh GSS-API机制之一使用Kerberos身份验证,您将获得用户作为GSS交换的一部分请求的主机名。这几乎肯定对你没有帮助,但它恰好是我知道发送这些信息的唯一情况。

对于ssh虚拟主机,您需要为每个虚拟主机专用IP地址或端口。查看端口共享或IPv6作为您的应用程序的可能性。