Mam dwie maszyny wirtualne z ( arch linux
i debian
działa pod virtual box
). Niedawno połączenie z arch
maszyną wirtualną zajęło dużo czasu ssh
. Po raz pierwszy kolejne próby następują szybko. Oto, co widzę na arch
maszynie wirtualnej:
debug1: userauth-request for user yuri service ssh-connection method none
debug1: attempt 0 failures 0
debug3: Trying to reverse map address 10.0.2.2.
# ^^^ spends a lot of time after this line
debug2: parse_server_config: config reprocess config len 314
debug2: input_userauth_request: setting up authctxt for yuri
debug1: PAM: initializing for "yuri"
debug1: PAM: setting PAM_RHOST to "10.0.2.2"
debug1: PAM: setting PAM_TTY to "ssh"
debug2: input_userauth_request: try method none
Failed none for yuri from 10.0.2.2 port 35786 ssh2
10.0.2.2
jest domyślną bramą dla maszyn wirtualnych. Co to wszystko znaczy?
PS Oto dobra odpowiedź , dzięki której mogłem poczynić pewne postępy w badaniu problemu.
ubuntu
ssh
arch-linux
x-yuri
źródło
źródło
Odpowiedzi:
Dziennik serwera prawie to potwierdził (tak dobrze zrobione, że go opublikowałem :).
Patrząc na
man sshd_config
:Zauważ, że jest to prawie bezcelowe . Czek nie zabija połączenia. Jeśli nie przejdzie, po prostu rejestruje machanie palcem:
który służy tylko do generowania przerażających fałszywych alarmów dla użytkowników z niekompetentnymi dostawcami usług internetowych.
OK, więc jak to może spowodować opóźnienie?
Jeśli serwer DNS nie zareaguje natychmiast, klient będzie czekał i spróbuje ponownie. (W przypadku opóźnienia lub utraty pakietu DNS z powodu przeciążenia sieci). Jeśli serwer DNS w ogóle nie odpowiada, klient ostatecznie się podda. Np. W
dig
moim systemie próbuje przez 15 sekund. (Używa bardziej szczegółowego kodu biblioteki dns, ale zasada jest taka sama).Problemem jest, że wyszukiwanie wsteczne nie otrzymuje odpowiedzi. Możesz samodzielnie uruchomić to samo wyszukiwanie na serwerze i powinieneś zobaczyć to samo opóźnienie co ssh.
getent hosts 10.0.2.2
.źródło
/etc/resolv.conf
że nie wyświetla adresu IP w jednym z twoich własnych zakresów sieci, takich jak10.0.2.2
? Jeśli tak, to tak, jest to niekompetencja dostawcy usług internetowych. (I domniemanie, że prawdopodobnie nie będą w stanie naprawić tego za radą pojedynczego konsumenta. Więc musisz obejść to sam. W takim przypadku np. Instalacjaunbound
jako rekurencyjnego resolvera na komputerze hosta byłaby dobrym pomysłem w generał).dig
to nie dotyczy/etc/hosts
. Jeśli/etc/resolv.conf
wyświetla ten sam serwer nazw na obu maszynach wirtualnych, oczekiwałbymdig -x 10.0.2.2
również przekroczenia limitu czasu na maszynie wirtualnej debian. To samo dotyczy systemu hosta, tzn. Tego, na którym działa VirtualBox.Na tym etapie istnieje wiele możliwości, które mogą powodować wolne połączenie. Z tego linku jeden problem, który widzę, dotyczy szyfrowania.
Jeszcze jedna możliwość, ze tutaj jest związane z
SELinux
obsługą.Również z tego linku widzę, że uwierzytelnianie PAM może być przyczyną powolnego SSH.
źródło
GSSAPI*
ustawienia. Jeśli chodzi o pierwszy przypadek, mój katalog domowy nie jest zaszyfrowany, a serwer nie odrzucił mojego klucza. I nie mam/var/log/audit
katalogu na maszynie hosta i gościa. Zastanawiam się teraz, czy jest to spowodowaneUseDNS = yes
, choć dzieje się tak na obu maszynach wirtualnych. A ten, który łączy się zbyt wolno, jest zarch linux
.UseDNS
Doceniane jest uzasadnienie tego, jak dokładnie wpływa na problem.