到同一系统的多个 SSH 连接 - 可能吗?

Une*_*ded 22 networking ssh openssh

我有一台 linux 计算机充当服务器,它可以接受传入的 SSH 连接。

是否可以使用 SSH 将多个设备(例如我的手机和笔记本电脑以及其他台式机)同时可靠地连接到同一台服务器?

谢谢您的帮助。

小智 53

简短的回答 - 是的。它通常默认工作。

长答案 - 根据您使用它的目的,它可能会因多个连接而变慢,但这是带宽问题,而不是 ssh 问题。


Has*_*tur 24

是的,这是可能的,这是默认行为。

相信

可以,如果你使用的是更新版本依靠ssh,协议是没有任何更多1。

grep "Protocol"  /etc/ssh/sshd_config
Run Code Online (Sandbox Code Playgroud)

上面的命令应该给你Protocol 2

连接限制

您可以看到69 年诞生ssh的加密演变telnet,允许远程访问服务器。请注意,ssh通过 TCP 连接并且它也能够转发 X 会话(图形会话)。多任务和多用户是 Unix 的内在本质......即使它不是没有限制!!!

你可以看到其中的一些限制在TCP和SSH限制:

  • cat /proc/sys/net/core/somaxconn,通常为 128,以查看您可以拥有的最大 TCP未完成连接数;

    kern.ipc.somaxconn sysctl(8) 变量限制了接受新 TCP 连接的监听队列的大小。默认值 128 通常太低,无法在负载较重的 Web 服务器上稳健地处理新连接。

  • cat /proc/sys/net/core/netdev_max_backlog,通常为1000,TCP报文队列的最大长度
  • less /etc/security/limits.conf 您可以找到用户的限制。
  • MAXSESSIONS/etc/ssh/sshd_config

    MaxSessions 指定每个网络连接允许的最大打开会话数。默认值为 10

  • #MaxStartups 10:30:60通常在/etc/ssh/sshd_config和 默认设置为 10

    指定到 SSH 守护程序的最大并发未经身份验证连接数...默认值为 10。


参考

  • man sshman sshd在你的机器上。
  • sshdsshd_config的手册页。

  • `somaxconn` 是*未完成* 连接的最大数量,即最大侦听积压,*不是*“您可以拥有的最大 TCP 连接[s] 数量”。您可以拥有的最大 TCP 连接数比 128 大几个数量级。否则将无法使用实际的服务器。 (4认同)

ljr*_*jrk 6

是的,它完全是。但这应该是实现定义的。您也可以编写自己的(可能不那么安全,甚至更糟)无法处理多个连接的 ssh 服务器。但是就像普通的 HTTP 服务器当然支持这一点一样,openssh 也支持这一点。

实际上这就是 Unix 的概念:一个多用户系统,其中服务器完成所有工作,只有小客户端连接(终端)。