Nawiązanie połączenia z jednym z moich serwerów za pomocą ssh trwa dłużej niż 20 sekund.
Nie jest to związane z warunkami LAN lub WAN, ponieważ połączenie z samym sobą zajmuje to samo (ssh localhost). Po ostatecznym ustanowieniu połączenia interakcja z serwerem jest bardzo szybka.
Użycie -vvv pokazuje, że połączenie jest zawieszone po powiedzeniu „pledge: network”. W tym momencie uwierzytelnianie (tutaj za pomocą klucza) jest już wykonane, jak widać tutaj:
...
debug1: Authentication succeeded (publickey).
Authenticated to myserver.mydomain.com ([xx.xx.xx.xx]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
(... utknąłem tutaj na 15 do 25 sekund ...)
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
...
Serwer to Ubuntu 16.04. W przeszłości zdarzyło mi się to z innym serwerem (był Ubuntu 12.04), nerver znalazł rozwiązanie i problem zniknął po pewnym czasie ...
sshd_config jest domyślnym programem dostarczanym przez Ubuntu.
Do tej pory próbowałem:
- using -o GSSAPIAuthentication = no w komendzie ssh
- używając hasła zamiast klucza
- using UsePrivilegeSeparation no zamiast yes, w sshd_config
systemctl restart systemd-logind
naprawia dla mnie problem tylko przez krótki czas.pam_systemd(sshd:session): Failed to create session: Connection timed out
jak wspomniano w odpowiedzi, może to być github.com/systemd/systemd/issues/2925Odpowiedzi:
Jest to prawdopodobnie problem z
D-Bus
isystemd
. Jeśli zdbus
jakiegoś powodu usługa zostanie ponownie uruchomiona, konieczne będzie również ponowne uruchomieniesystemd-logind
.Możesz sprawdzić, czy to jest problem, otwierając dziennik demona ssh (na Ubuntu powinien być
/var/log/auth.log
) i sprawdź, czy ma on następujące linie:Jeśli tak, po prostu uruchom ponownie
systemd-logind
usługę:Miałem ten sam problem na CentOS 7, ponieważ
messagebus
został zrestartowany (tak sięD-Bus
nazywa usługa na CentOS).źródło
polkit
usługę za pomocąsystemctl restart polkit
.znalazłem odpowiedź:
zmieniono UsePAM z yes na no w pliku sshd_config
Po zrestartowaniu usługi ssh połączenie jest teraz natychmiastowe do serwera. Na tym serwerze PAM jest połączony z ldap, więc prawdopodobnie jest to powód, nawet jeśli tutaj łączę się z użytkownikiem zadeklarowanym na samym serwerze, a nie LDAP.
Jest to raczej sposób na obejście problemu, a nie rozwiązanie ... Mam inne serwery skonfigurowane w ten sam sposób, w których nie występuje ten problem.
Mam nadzieję, że to może komuś pomóc ...
źródło
Stało się to na dwóch moich serwerach Fedora 25 i było to spowodowane wieloma nieudanymi próbami logowania SSH.
(Typowe sugestie dotyczące używania
GSSAPIAuthentication=no
iUseDNS=no
ponownego uruchamianiasystemd-logind
nie miały znaczenia).Na tych serwerach
/etc/pam.d/postlogin
zawiera:Strona
pam_lastlog
podręcznika man wyjaśnia, żeshowfailed
opcja:Na tych serwerach
/var/log/btmp
pliki były ogromne z powodu wielu nieudanych prób logowania. Tebtmp
pliki dziennika nie zostały obrócone są obaj.Zainstalowałem
logrotate
pakiet, aby mieć pewność, że pliki dziennika zostaną w przyszłości obrócone. (W Fedorze konfiguracja dostarczana zlogrotate
obsługuje rotację/var/log/btmp
.)Usunąłem również ogromne
btmp
pliki dziennika; jak tylko to zrobiłem, połączenie z serwerami było natychmiastowe.źródło
sudo truncate -s 0 /var/log/btmp
- Mój miał rozmiar 2,7 G.W moim przypadku przyczyną była awaria rsyslogd. Dowiedziałem się tego, ponieważ nie było więcej komunikatów w dzienniku np. / Var / log / syslog lub /var/log/mail.log
Więc
service rsyslog restart
rozwiązaliśmy problem dla nas.źródło
Dla mnie ten problem jest spowodowany dużym (setki MB)
btmp
plikiem. Ten plik rejestruje próby logowania. Gdy ludzie próbują brutalnie wymusić twoje hasło, ten plik może być duży i powodować opóźnienia w"pledge: network"
fazie.Spróbuj wyczyścić plik dziennika
echo "" > /var/log/btmp
i zobacz, czy to pomoże.
źródło
:> /var/log/btmp
robi to samo btw.Dla mnie rozwiązaniem było dodawanie
do
/etc/ssh/sshd_config
a potem oczywiścieservice ssh restart
(na naszym serwerze Debian / Jessie). Nic więcej...przed :
po :
źródło
UseDNS no
jest rozwiązaniem zupełnie innego problemu.sign_and_send_pubkey
, dłuższy popledge: network
. Dodanie tylkoUseDNS no
z kolejnymiservice ssh restart
rozwiązało problem na starej instalacji Ubuntu 14.04.5 LTS tutaj.W mojej informacji zwrotnej dotyczącej debugowania zauważyłem następujący wiersz:
Który był plikiem, którego właścicielem
root:root
byłam podczas gdy jajenkins
. Usunięcie tego pliku rozwiązało moje problemy.źródło