每次连接时,OpenSSH 是否都会向 no-more-sessions@openssh.com 发送电子邮件?

Und*_*ndo 28 ssh openssh ubuntu

当我尝试使用 连接到我的 EC2(Ubuntu 14.04.3)服务器时ssh -v server,我在日志末尾看到了这一点:

debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Authenticated to <domain>.com ([192.168.1.42]:12345).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com  # <!-!-!-!-!-!- What's this?
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending env LC_CTYPE = en_US.UTF-8
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-55-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

这是我的.ssh/config

Host server
  HostName domain.com
  User myuser
  IdentityFile ~/path/to/EC2Key.pem
  Port <portnumber>
Run Code Online (Sandbox Code Playgroud)

这似乎很正常。我可以在这里看到两个可能的原因:

  1. OpenSSH 试图以openssh.com用户身份建立连接no-more-sessions- 但这也没有任何意义,为什么?
  2. OpenSSH 正在尝试将电子邮件发送到no-more-sessions@openssh.com. 这更没有意义,两个选项似乎都有点令人毛骨悚然。

这里发生了什么事?

小智 37

不,那不是电子邮件地址。该something@domain语法用于许多其他地方,SSHv2 使用它来命名所有“非标准”扩展(密码、子系统等)。

所以这个特殊的请求是@openssh.com因为它是由 OpenSSH 发明的,并且没有成为“主要”标准文档的一部分。

OpenSSH 5.1 发行说明中解释了它的用途:

  • 添加了 no-more-sessions@openssh.com 全局请求扩展,当客户端知道它永远不会请求另一个会话时(即禁用会话多路复用时),该扩展从 ssh(1) 发送到 sshd(8)。这允许服务器在客户端被劫持的情况下禁止进一步的会话请求并终止会话。

  • 的确。在这种情况下,它类似于 `&lt;thing&gt;@&lt;namespace&gt;`。另一个相关的方法是反向域样式(不管它叫什么):`&lt;namespace&gt;.&lt;thing&gt;` (4认同)