Múltiples conexiones SSH al mismo sistema: ¿es posible?

14

Tengo una computadora Linux que actúa como un servidor que puede aceptar conexiones SSH entrantes.

¿Es posible conectar de manera confiable múltiples dispositivos al mismo tiempo, como mi teléfono y mi computadora portátil, así como otras computadoras de escritorio, al mismo servidor usando SSH?

Gracias por la ayuda.

Sam3000
fuente
63
¿Por qué no lo intentaste antes de preguntar?
Dmitry Grigoryev
1
No solo esto, sino que puede tener múltiples enlaces entre el mismo par de sistemas. También puede resultarle útil screeno moshútil si desea el comportamiento de "escritorio remoto de Windows" para la línea de comandos: una única interfaz que se pasa por varios enlaces.
pjc50
77
Hay 2 razones por las que simplemente no lo intenté antes de preguntar; El primero es la falta de fe que tengo en mi propia comprensión de Linux: si hubiera funcionado, aún no habría confiado en su fiabilidad si confiara en él. El segundo es que la comunidad de Superusuarios es, en términos generales, increíble y rápida para ayudar a quienes preguntan, gracias comunidad.
Sam3000

Respuestas:

50

La respuesta corta: sí. Suele funcionar por defecto.

La respuesta larga: dependiendo de para qué lo esté usando, puede ralentizarse con múltiples conexiones, pero eso es un problema de ancho de banda, no un problema de SSH.

adgelbfish
fuente
15

Sí, es posible, es el comportamiento predeterminado.

Confiar

Puede confiar si está utilizando una versión actualizada de sshy el protocolo ya no es 1.

grep "Protocol"  /etc/ssh/sshd_config

El comando anterior debería darte Protocol 2.

Límites para las conexiones

Puede ver sshcomo la evolución encriptada de telnet, nacida en el lejano '69 para permitir el acceso remoto a un servidor. Tenga en cuenta que se sshconecta a través de TCP y también puede reenviar sesiones X (sesión gráfica). La multitarea y el multiusuario están en la naturaleza interna de Unix ... ¡incluso si no tiene límites!

Puede ver algunos de esos límites en los límites de TCP y SSH:

  • cat /proc/sys/net/core/somaxconn, generalmente 128, para ver la conexión TCP pendiente máxima que puede tener;

    La variable kern.ipc.somaxconn sysctl (8) limita el tamaño de la cola de escucha para aceptar nuevas conexiones TCP. El valor predeterminado de 128 suele ser demasiado bajo para el manejo robusto de nuevas conexiones en un servidor web con mucha carga.

  • cat /proc/sys/net/core/netdev_max_backlog, generalmente 1000, la longitud máxima de la cola de paquetes TCP
  • less /etc/security/limits.conf Puede encontrar los límites para el usuario.
  • MaxSessions en/etc/ssh/sshd_config

    MaxSessions Especifica el número máximo de sesiones abiertas permitidas por conexión de red. El valor predeterminado es 10 .

  • #MaxStartups 10:30:60generalmente comentado en el /etc/ssh/sshd_configy por defecto establecido en 10

    Especifica el número máximo de conexiones concurrentes no autenticadas al demonio SSH ... El valor predeterminado es 10.


Referencias

  • man ssh, man sshden tu máquina.
  • La página de manual de sshd o de sshd_config .
Hastur
fuente
2
somaxconnes el número máximo de conexiones pendientes , es decir, la cantidad máxima de pedidos pendientes de escucha, no el "número máximo de conexiones TCP que puede tener". El número máximo de conexiones TCP que puede tener es un orden de magnitud mayor que 128. De lo contrario, no sería posible tener servidores prácticos.
user207421
@ejp gracias por el lugar, estaba apurado y extraño "nuevo" antes de la conexión. Por cierto "sobresaliente" es más preciso. Agregué algunas palabras más con la esperanza de que sea más claro.
Hastur
MaxSessionssolo limita el número de sesiones multiplexadas en una sola conexión TCP ( más detalles ), por lo que no le limita a conectarse al mismo host nuevamente. (Un límite predeterminado de 10 para las sesiones totales ssh sería absurdo imaginar un servicio de hosting compartido con cientos o miles de cuentas de usuario y sólo 10 sesiones ssh permitidos..)
Josef dice Restablecer Mónica
@Josef Está escrito MaxSessions Especifica el número máximo de sesiones abiertas permitidas por conexión de red , nada diferente (como se informa en la página del manual): tal vez no sea lo suficientemente claro. Gracias por la referencia adicional y para subrayar este punto. (Nota: por cierto, el uso común de una computadora Linux con ssh no es un host web compartido con 10 ^ 5 + cuenta de usuarios, y en ese caso la configuración predeterminada no puede ser apropiada por definición :-))
Hastur
6

Sí, lo es totalmente. Pero esto debería estar definido por la implementación. También podría programar su propio servidor ssh (probablemente no tan seguro y peor) que no puede manejar múltiples conexiones. Pero al igual que los servidores HTTP comunes, por supuesto, admiten esto, openssh también lo hace.

En realidad, este es el concepto mismo de Unix: un sistema multiusuario donde un servidor hace todo el trabajo y solo se conectan pequeños clientes (terminales).

larkey
fuente
4

Sí, esto es muy común. De hecho, si es utilizado como servidor de archivos y por muchos usuarios, es absolutamente esencial. SFTP usa SSH, y hay mucha actividad EDI que también depende de ello.

Desde los dispositivos es posible activar eventos con inicios de sesión de usuario personalizados (como apagar o reiniciar).

Considere también SCP (WinSCP se usa comúnmente para acceder al código fuente), y los usuarios de KDE aún pueden usar fish: en Konqueror.

También es notable el uso de puertos adicionales en caso de pérdida durante el mantenimiento (Ubuntu do-release-upgrade, por ejemplo).

Entonces, sí, supongo que nunca has tenido múltiples terminales PuTTY abiertas.

mckenzm
fuente
¡No es extraño que no lo haya hecho! Pero gracias por la información adicional, ¿qué quiso decir con puertos adicionales para mantenimiento?
Sam3000
1
Durante la actualización do-relesase desde un terminal remoto, existe el riesgo de que se pierdan las comunicaciones (reinicio de SSH o red, por ejemplo). Si no se pueden restablecer en el puerto 22, Ubuntu proporciona un puerto alternativo 1022 utilizando una segunda instancia SSH. La actualización se produce dentro de "screen", a la que se puede acceder con screen -x / screen -r después de volver a conectar y un sudo su. (mira en "pantalla" y "tmux"). Mucha información sobre esto.
mckenzm