Mam następujący wpis w moim .ssh/config
pliku
Host AAA
User BBB
HostName CCC
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
Powyższe pozwala mi multipleksować wiele sesji ssh poprzez to samo połączenie ssh bez konieczności wpisywania hasła za każdym razem, gdy potrzebuję nowej sesji (o ile połączenie główne pozostaje otwarte).
Zauważyłem jednak, że gdy mam stosunkowo dużą liczbę multipleksowanych połączeń (~ 7), nie mogę dodać więcej sesji do tego samego multipleksowanego połączenia i zaczynam wyświetlać następujący błąd:
> ssh -X AAA
mux_client_request_session: session request failed: Session open refused by peer
Password:
Moje pytania:
Dlaczego dostaję ten błąd? Czy jest limit w liczbie sesji ssh, które mogę multipleksować w tym samym połączeniu? Czy mogę zmienić ten limit? Czy to byłby zły pomysł?
Odpowiedzi:
sshd
Demon na serwerze jest ograniczenie liczby sesji na połączenia sieciowego. Jest to kontrolowane przezMaxSessions
opcję w/etc/ssh/sshd_config
. WMaxStartups
przypadku dużej liczby sesji może być konieczne zwiększenie opcji. (Zobaczman sshd_config
więcej szczegółów.) Opcja modyfikacjiMaxSessions
limitu została wprowadzona w OpenSSH 5.1 i wygląda na to, że liczba ta była wcześniej sztywno ustalona na 10. Jeśli przekroczyszMaxSessions
na serwerze, zobaczyszsshd[####]: error: no more sessions
w dzienniku serwera.źródło
Natknąłem się na ten problem na serwerze z wcześniejszą wersją OpenSSH. Kontroluję serwer i rozwiązałem problem, tworząc dwie nazwy CNAME w mojej nazwanej konfiguracji:
Następnie w mojej lokalnej konfiguracji klienta ssh:
Instrukcja ControlPath jest taka, że nazwy gniazd sterujących się nie nadepną.
To wszystko, ale aby ułatwić zarządzanie, napisałem skrypt otoki dla „ssh” po stronie klienta. Rozumie, że istnieją „grupy” hostów (w tym przypadku realhost, realhost1, realhost2 stanowią jedną grupę). Wydając „sshwrapper realhost”, jeśli nie ma żadnych otwartych kanałów, wszystkie trzy są otwarte i rozpoczyna się jedna sesja. Przy następnym uruchomieniu zlicza otwarte połączenia na kanał i otwiera nową sesję na kanale z najmniejszą liczbą połączeń.
Z jednym prawdziwym i dwoma „fałszywymi” hostami, mogę połączyć się 30 razy przed otrzymaniem błędu. Logowanie jest niezwykle szybkie, z tym że początkowy czas zajmuje sekundę lub dwie, ponieważ wszystkie trzy kanały sterujące są wówczas otwarte.
źródło