У меня есть следующая запись в моем .ssh/config
файле
Host AAA
User BBB
HostName CCC
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
Вышеупомянутое позволяет мне мультиплексировать несколько сессий ssh через одно и то же соединение ssh без необходимости вводить пароль каждый раз, когда мне нужен новый сеанс (до тех пор, пока мастер-соединение остается открытым).
Тем не менее, я заметил, что, когда у меня относительно большое количество мультиплексированных соединений (~ 7), я не могу добавить больше сеансов к тому же мультиплексному соединению, и я начинаю получать следующую ошибку:
> ssh -X AAA
mux_client_request_session: session request failed: Session open refused by peer
Password:
Мои вопросы:
Почему я получаю эту ошибку? Есть ли предел количества сессий ssh, которые я могу мультиплексировать в одном соединении? Могу ли я изменить этот лимит? Это была бы плохая идея?
Ответы:
sshd
Демон на сервере ограничивает число сеансов на подключение к сети. Это контролируетсяMaxSessions
опцией в/etc/ssh/sshd_config
. ТакжеMaxStartups
может потребоваться увеличить эту опцию, если вы используете большое количество сеансов. (См.man sshd_config
Более подробную информацию.) Опция измененияMaxSessions
предела была введена в OpenSSH 5.1, и похоже, что ранее это число было жестко установлено на 10. Если вы превысилиMaxSessions
на сервере, вы увидитеsshd[####]: error: no more sessions
в журнале сервера.источник
Я столкнулся с этой проблемой на сервере с более ранней версией OpenSSH. Я управляю сервером и решил проблему, создав два CNAME в моей именованной конфигурации:
Затем в моей локальной конфигурации клиента ssh:
Оператор ControlPath используется для того, чтобы имена сокетов управления не наступали друг на друга.
Вот и все, но чтобы упростить управление, я написал скрипт-обертку для ssh на стороне клиента. Он понимает, что существуют «группы» хостов (в этом случае realhost, realhost1, realhost2 составляют одну группу). При выдаче 'sshwrapper realhost', если открытых каналов нет, все три открываются, и начинается один сеанс. При следующем запуске он подсчитывает количество открытых соединений на канал и открывает новый сеанс в канале с наименьшим количеством соединений.
С одним реальным и двумя «поддельными» хостами я могу подключиться 30 раз, прежде чем получит сообщение об ошибке. Вход в систему очень быстрый, за исключением того, что начальное время занимает секунду или две, так как все три канала управления открыты в это время.
источник