Разница между maxstartups и maxsessions в sshd_config

Я хочу ограничить общее количество соединений ssh. Я прошел много sshd руководств. Они просто говорят, что эти два поля могут использоваться MaxStartups: максимальное количество одновременных неаутентифицированных подключений к демону SSH. MaxSession: максимальное количество (мультиплексированных) открытых сеансов, разрешенных для одного соединения TCP. Каков вклад обоих в вычисление общего количества соединений ssh?

1 ответ

MaxSessions
     Specifies the maximum number of open shell, login or subsystem
     (e.g. sftp) sessions permitted per network connection.  Multiple
     sessions may be established by clients that support connection
     multiplexing.  Setting MaxSessions to 1 will effectively disable
     session multiplexing, whereas setting it to 0 will prevent all
     shell, login and subsystem sessions while still permitting for-
     warding.  The default is 10.

 MaxStartups
     Specifies the maximum number of **concurrent   unauthenticated con-
     nections to the SSH daemon.**  Additional connections will be
     dropped until authentication succeeds or the LoginGraceTime
     expires for a connection.  The default is 10:30:100.

     Alternatively, random early drop can be enabled by specifying the
     three colon separated values ``start:rate:full'' (e.g.
     "10:30:60").  sshd(8) will refuse connection attempts with a
     probability of ``rate/100'' (30%) if there are currently
     ``start'' (10) unauthenticated connections.  The probability
     increases linearly and all connection attempts are refused if the
     number of unauthenticated connections reaches ``full'' (60).

Вопрос довольно старый и, возможно, лучше подходит для serverfault, но он так и не получил ответа, кроме ссылки на страницу руководства. Мой ответ - дополнить детали справочной страницы добавлением контекста.

SSH позволяет мультиплексировать сеансы, то есть открывать множество сеансов (например, оболочку, передачу sftp и необработанную команду) одновременно, используя только одно TCP-соединение. Это экономит накладные расходы, связанные с многократным подтверждением связи TCP и несколькими аутентификациями SSH. ПараметрMaxSessionsпозволяет ограничить это мультиплексирование определенным количеством сеансов.
Если вы установитеMaxSessions 1и если оболочка открыта, вы все равно можете запустить передачу SFTP или открыть вторую оболочку, но в фоновом режиме SSH откроет другое TCP-соединение и снова аутентифицируется. (Используйте аутентификацию по паролю, чтобы сделать это видимым).
Если вы установитеMaxSessions 0вы можете убедиться, что никто не может открыть сеанс (оболочка, SFTP или аналогичный), но вы все равно можете подключиться, чтобы открыть туннель или ssh на следующий хост.
Ознакомьтесь с разделом ControlMasterssh_config(5).

Когда вы подключаетесь к удаленному SSH-серверу, между установкой подключения и успешной аутентификацией есть промежуток времени. Этот временной интервал может быть очень маленьким, например, когда вы настраиваете свой SSH-клиент для использования определенного закрытого ключа для этого соединения, или он может быть длинным, когда клиент сначала пробует три разных SSH-ключа, просит вас ввести пароль, а затем ждет чтобы вы могли ввести 2-й факторный код авторизации, который вы получите в текстовом сообщении. Сумма одновременных подключений в этот период времени представляет собой "одновременные неаутентифицированные подключения", упомянутые на указанной странице руководства. Если в этом состоянии слишком много подключений, sshd перестает принимать новые. Вы можете настроитьMaxStartupsизмениться, когда это произойдет.
Примером реального использования для изменения значения по умолчанию является, например, узел перехода, который используется для подготовки программного обеспечения, такого как ansible. Когда его просят подготовить множество хостов за хостом перехода, Ansible открывает множество соединений одновременно, поэтому он может выйти за этот предел, если соединения открываются быстрее, чем хост SSH может их аутентифицировать.

Другие вопросы по тегам