Сервер Openssh: фатальный: слишком много сокетов для прослушивания. Увеличить MAX_LISTEN_SOCKS

Я использую Ubuntu 14.04 LTS. Я хочу создать сервер openssh , который прослушивает многие порты (не менее 100 различных портов). Несколько клиентов будут подключаться к этому серверу, но каждый клиент должен иметь собственный выделенный порт. Клиенты создавали бы обратные ssh-туннели для этого хоста по требованию, а максимальное количество одновременных клиентов было бы макс. 10 за раз.

При настройке 16 или более портов сервер Openssh не запускается с ошибкой:

 fatal: Too many listen sockets. Enlarge MAX_LISTEN_SOCKS 

MAX_LISTEN_SOCKS определяется в файле sshd.c Есть ли способ увеличить MAX_LISTEN_SOCKS , без необходимости перекомпилировать и переустановить сервер openssh из источника?

Альтернатива: есть ли другой / лучший способ решить эту проблему?

Вы можете запустить sshd используя inetd (и необязательно tcpd ) на столько портов, сколько хотите, с помощью следующего inetd.conf :

 10000 stream tcp nowait root /usr/sbin/tcpd sshd -i 10001 stream tcp nowait root /usr/sbin/tcpd sshd -i 10002 stream tcp nowait root /usr/sbin/tcpd sshd -i ... 

Вы также должны прочитать оговорки о sshd -i в руководстве sshd .

Спасибо за помощь и за ответы, оказывается, что в основном эта проблема бессмысленна. Мои глаза открылись полезным redditor ckozler : https://www.reddit.com/r/linuxadmin/comments/3kdn1r/openssh_server_fatal_too_many_listen_sockets/cuwoo02

Но они все равно будут подключаться к ВАМ на порте 22, обратный туннель SSH – это порт, открытый на ИМ, к которому вы подключаетесь. Демон вашего сервера (OpenSSH) не нуждается в нескольких портах для приема нескольких клиентов. Thats красота многопоточных серверов сокетов

В принципе, мне не нужна эта функциональность, что я просил в моем первоначальном вопросе.