Несколько SSH подключений к одной системе - возможно ли это?

14

У меня есть компьютер Linux, выступающий в качестве сервера, который может принимать входящие SSH-соединения.

Можно ли надежно подключить одновременно несколько устройств, таких как мой телефон и ноутбук, а также другие настольные компьютеры, к одному серверу с использованием SSH?

Спасибо за помощь.

Sam3000
источник
63
Почему ты просто не попробовал, прежде чем спросить?
Дмитрий Григорьев
1
Не только это, но вы можете иметь несколько ссылок между одной и той же парой систем. Вы также можете найти screenили moshполезно, если вам нужно поведение «удаленного рабочего стола Windows» для командной строки: единый интерфейс, который передается по нескольким ссылкам.
pjc50
7
Есть две причины, по которым я не просто попробовал, прежде чем спрашивать; Во-первых, это отсутствие веры в мое собственное понимание Linux - если бы он работал, я бы все равно не поверил в его надежность, если бы стал полагаться на него. Во-вторых, сообщество Superuser, вообще говоря, здорово и быстро помогает тем, кто спрашивает - спасибо сообществу.
Sam3000

Ответы:

50

Краткий ответ - да. Обычно это работает по умолчанию.

Длинный ответ - в зависимости от того, для чего вы его используете, он может замедляться при наличии нескольких соединений, но это проблема пропускной способности, а не проблема ssh.

adgelbfish
источник
15

Да, это возможно, это поведение по умолчанию.

Доверять

Вы можете рассчитывать , если вы используете обновленную версию из sshи протокол не больше 1.

grep "Protocol"  /etc/ssh/sshd_config

Команда выше должна дать вам Protocol 2.

Пределы для соединений

Вы можете видеть sshкак зашифрованную эволюцию telnet, рожденную в далеком 69 году, чтобы разрешить удаленный доступ к серверу. Обратите внимание, что он sshподключается через TCP и может пересылать X-сеансы (графические сеансы). Многозадачность и многопользовательский характер во внутренней природе Unix ... даже если это не без ограничений !!!

Вы можете увидеть некоторые из этих ограничений в пределах TCP и SSH:

  • cat /proc/sys/net/core/somaxconn, Как правило , 128, чтобы увидеть максимум TCP выдающиеся соединения вы можете иметь;

    Переменная kern.ipc.somaxconn sysctl (8) ограничивает размер очереди прослушивания для приема новых соединений TCP. Значение по умолчанию 128 обычно слишком мало для надежной обработки новых подключений на сильно загруженном веб-сервере.

  • 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 ssh, man sshdНа вашей машине.
  • Страница руководства по sshd или sshd_config .
Hastur
источник
2
somaxconnэто максимальное количество незавершенных соединений, т.е. максимальное количество невыполненных прослушиваний, а не «максимальное количество соединений TCP, которое вы можете иметь». Максимальное количество TCP-соединений, которое вы можете иметь, на порядок больше 128. В противном случае практические серверы были бы невозможны.
user207421
@ejp спасибо за место, я спешил и скучаю по «новому» перед подключением. Кстати, «выдающийся» является более точным. Я добавил еще несколько слов в надежде, что это станет более понятным.
Хастур
MaxSessionsтолько ограничивает количество мультиплексированных сеансов по одному TCP-соединению ( более подробно ), поэтому он не ограничивает вас для повторного подключения к тому же хосту. (Ограничение по умолчанию 10 для общего числа сеансов SSH бы абсурдным представить общий хостинг с сотнями или тысячами учетных записей пользователей и только 10 SSH сессий допускается..)
Джозеф говорит восстановило Моника
@Josef Написано MaxSessions Задает максимальное количество открытых сеансов, разрешенных для одного сетевого подключения , ничего другого (как сообщается на странице руководства): возможно, недостаточно ясно. Спасибо за дополнительную ссылку и подчеркнуть этот пункт. (Примечание: кстати, обычное использование компьютера Linux с ssh не является общим веб-хостом с учетной записью 10 ^ 5 + пользователей, и в этом случае настройка по умолчанию не может быть подходящей по определению :-))
Hastur
6

Да, это так. Но это должно быть определено реализацией. Вы также можете запрограммировать свой собственный (возможно, не такой безопасный и, что еще хуже) сервер ssh, который не может обрабатывать несколько соединений. Но, как и обычные HTTP-серверы, конечно, это поддерживается и openssh.

На самом деле это и есть сама концепция Unix: многопользовательская система, в которой сервер выполняет всю работу и подключаются только небольшие клиенты (терминалы).

larkey
источник
4

Да, это очень распространено. Действительно, если он используется как файловый сервер и многими пользователями, это абсолютно необходимо. SFTP использует SSH, и от него также зависит активность EDI.

С устройств можно запускать события с помощью пользовательских входов в систему (таких как выключение питания или перезагрузка).

Также рассмотрим SCP (WinSCP обычно используется для доступа к исходному коду), и пользователи KDE все еще могут использовать fish: в Konqueror.

Также примечательно использование дополнительных портов в случае потери во время обслуживания (скажем, Ubuntu do-release-upgrade).

Так что да, я так понимаю, у вас никогда не было открыто несколько терминалов PuTTY?

mckenzm
источник
Как ни странно, я этого не сделал! Но спасибо за дополнительную информацию, что вы имели в виду о дополнительных портах для обслуживания?
Sam3000
1
Во время do-relesase-upgrade с удаленного терминала существует риск потери связи (скажем, перезапуск SSH или сети). Если их невозможно восстановить на порту 22, Ubuntu предоставляет альтернативный порт 1022, используя второй экземпляр SSH. Обновление происходит внутри «экрана», к которому можно получить доступ через screen -x / screen -r после повторного подключения и sudo su. (посмотрите на "screen" и "tmux"). Обилие информации об этом.
Маккензм