Pracuję na serwerze z Debianem 5.2.2. Ledwo mając wiedzę administracyjną na temat Linuksa, chyba coś spieprzyłem. Użyłem aktualizacji apt-get i apt-get upgrade, aby uzyskać wszystko na bieżąco, a następnie pobrałem i zainstalowałem Apache, PHP i MySQL. Te narzędzia wydają się działać dobrze, ale teraz nie mogę nawet zalogować się na serwer Z WYJĄTKIEM konsoli lokalnej. Jeśli spróbuję zalogować się przez GUI lub jeśli spróbuję zalogować się zdalnie przez ssh, scp lub cokolwiek innego, NATYCHMIAST rozłączę się po pomyślnym zalogowaniu. Innymi słowy, nie ma problemu z początkowym połączeniem, ale kiedy podam prawidłową nazwę użytkownika i hasło (dla użytkownika root lub dowolnego użytkownika), rozłączam się. Dzięki graficznemu interfejsowi ekran na sekundę staje się czarny, a następnie od razu wraca do ekranu logowania. Dzięki ssh otrzymuję „połączenie z [serwerem] zostało zamknięte”.
Każda pomoc jest doceniana, a jeśli istnieje jakikolwiek sposób, w jaki mógłbym podać więcej informacji, proszę dać mi znać. Dziękuję za Twój czas.
Edycje:
- Każdy użytkownik może zalogować się na konsoli lokalnej
- W tej chwili nie mam lokalnego dostępu do maszyny, więc mogę teraz tylko ssh. Oto wynik działania ssh -vvv [serwer] po wprowadzeniu hasła:
Linux xxxxxxx.com 2.6.26.8+20091222+1056-debhawk-5.2.2-custom #1 SMP PREEMPT Tue Dec 22 10:58:57 EST 2009 i686
Last login: Mon Apr 30 14:48:07 2012 from xxxxxxx.com
debug2: channel 0: rcvd eof
debug2: channel 0: output open -> drain
debug2: channel 0: obuf empty
debug2: channel 0: close_write
debug2: channel 0: output drain -> closed
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug2: channel 0: rcvd close
debug2: channel 0: close_read
debug2: channel 0: input open -> closed
debug3: channel 0: will not send data after close
debug2: channel 0: almost dead
debug2: channel 0: gc: notify user
debug2: channel 0: gc: user detached
debug2: channel 0: send close
debug2: channel 0: is dead
debug2: channel 0: garbage collecting
debug1: channel 0: free: client-session, nchannels 1
debug3: channel 0: status: The following connections are open:
#0 client-session (t4 r0 i3/0 o3/0 fd -1/-1)
debug3: channel 0: close_fds r -1 w -1 e 6
Connection to xxx.x.xx.xx closed.
debug1: Transferred: stdin 0, stdout 0, stderr 35 bytes in 0.0 seconds
debug1: Bytes per second: stdin 0.0, stdout 0.0, stderr 3845.3
debug1: Exit status 254
/var/log/messages
i,/car/log/secure
gdy próbujesz zalogować się zdalnie. Spróbuj się zalogować,ssh -vvv <servername>
aby zobaczyć, co się dzieje.dmesg
dane wyjściowe mogą być również przydatne, ale musisz przyciąć i opublikować tylko odpowiednie części. Czy możesz zalogować się przy użyciu dowolnego konta użytkownika na konsoli lokalnej lub tylko root? Czy uruchomiony jest demon SSH (ps auxwww|grep ssh
)?Odpowiedzi:
Istnieje kilka podobnych postów sugerujących, że może to być problem ze spawnem powłoki z powodu niepoprawnych ustawień ścieżki powłoki w
/etc/passwd
Aby to sprawdzić, sprawdź, czy ścieżka powłoki użytkownika istnieje i jest wykonywalna;
Sprawdź powłokę istnieje:
sprawdź także, czy powłoka nie jest ustawiona na ani,
/sbin/nologin
ani/bin/false
, co również blokowałoby logowanie, nawet po udanym uwierzytelnieniu.http://www.linuxforums.org/forum/ubuntu-linux/173779-solved-ssh-issue.html
http://www.unix.com/hp-ux/169496-solved-ssh-debug1-exit-status -254-problem.html
http://www.mail-archive.com/[email protected]/msg04460.html
źródło
Kiedy napotkałem taki problem, nadal miałem ujawnione jedno połączenie / var / log / messages:
Edycja vi /etc/init.d/named pozwoliła zmienić sposób montowania / proc, więc błąd nie pojawił się po ponownym uruchomieniu.
Zasadniczo linie
Zostały zmienione na
Wskazówka, którą znalazłem na stronie http://www.computersalat.de/linux/strato-vserver/ssh-login-problem-nach-neustart/#comment-905
źródło
Mój problem polegał na tym, że katalog nazwy użytkownika logowania był niedostępny w tym
/home
katalogu. Jeśli więc masz użytkownika o nazwie „testser”, upewnij się, że/home/testuser
katalog jest dostępny. Nauczyłem się tego z/var/log/messages
pliku.źródło
/var/log/messages/auth.log
wskaźniki. Miałem także problem z plikiemW
sshd_config
pliku serwera SSH dodaj następujący wiersz:Poniżej znajduje się
sshd_config
użycie na OS X. Publikuję go (zamiast jednego na maszynie Debiana), ponieważ doświadczyłem tego samego problemu na OS X przy użyciu Macports (a nie Debiana).źródło
Jeśli używasz LDAP, zamień każde wystąpienie:
we wszystkich plikach w /etc/pam.d/ z:
Jest to błąd w pakiecie libpam-ldap (przykładowe pliki pam.d), patrz: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=612825
Upewnij się, że system może rozwiązać poprawnie, ssh jest trochę szczególny.
Sprawdź /etc/secuiry/limits.conf, aby sprawdzić, czy jakieś konta mają twarde limity liczby logowań, i zwiększ je, tj .:
Oprócz / var / log / messages, o których wspomina Bram, sprawdź także /var/log/auth.log i wklej odpowiednie dane wyjściowe. Zbyt dużo informacji jest lepsze niż za mało.
źródło
Rzeczywiście napotkałem dokładnie te objawy w sposób sugerowany wcześniej przez @ tom-h ... a rozdzielczość była bardzo prosta.
Aby rozwiązać, po prostu
vipw
edytuj plik passwd, dostosuj powłokę z / bin / false do / bin / bash lub opcji swoich preferencji.Proszę zrozumieć, że w niektórych przypadkach można to zrobić w celu ochrony wrażliwego konta. Mogą obowiązywać inne ograniczenia dostępu. Powinieneś wiedzieć, jak ważna jest ochrona serwera i być świadomym konsekwencji zezwolenia na tego typu dostęp do niego.
źródło
Miałem podobne problemy z Ubuntu 16.04 z LDAP. „ssh -vv ...” pokazał, że uwierzytelnienie hasłem powiodło się, ale potem nadeszła wiadomość: „Połączenie z ... zostało zamknięte przez zdalny host”.
Naprawiono w /etc/ldap.conf w konfiguracji „bind_policy”.
/var/log/auth.log pokazał:
Stwierdzono, że problem występuje w /etc/ldap.conf. Zmieniłem bind_policy na „soft”, więc nss_ldap natychmiast zwraca awarię serwera. Domyślnie jest to „hard_open”, które łączy się ponownie, jeśli otwarcie połączenia z serwerem LDAP nie powiodło się. Komentowanie wiersza „bind_policy soft” zmieniło go z powrotem na domyślne i rozwiązało problem. :-)
źródło
Po wielu poszukiwaniach w końcu znalazłem odpowiedź w przypadku CentOS 7 działającego w nieuprzywilejowanym kontenerze.
Skomentuj
session required pam_loginuid.so
wiersz w pliku /etc/pam.d/sshd, a następnie ponownie uruchom kontener.Znalazłem to rozwiązanie na https://discuss.linuxcontainers.org/t/regular-user-is-unable-to-login-via-ssh/4119
źródło
Wszystko to są świetne sugestie. W moim przypadku było to ustawienie PuTTY powodujące mój ból:
Wysłałem zdalne polecenie, aby wysłać na serwer w konfiguracji „SSH”. Co działa świetnie w 99% przypadków, jednak gdy polecenie się nie powiedzie, po prostu zamyka sesję.
Komenda??? screen -rd
Działa świetnie, gdy sesja jest wznawiana. Zawodzi strasznie po ponownym uruchomieniu.
Rozwiązanie:
przenieś to do bashrc / bash_profile.
źródło
W moim przypadku było to spowodowane przez użytkownika bez powłoki na serwerze SSH . Ma bardzo łatwą naprawę, wystarczy użyć
-N
przełącznika z (otwartym) klientem SSH.Od strony man :
Po prostu nie mogę zgodzić się z niektórymi odpowiedziami tutaj. Użytkownik z muszli
/bin/false
,/bin/nologin
jest właściwa konfiguracja, to zwykle stosowane dla użytkowników wykorzystywane tylko dla tuneli SSH, bez możliwości, aby zalogować się i wykonać wszelkie polecenia na serwerze SSH. Więc nie próbuj go „naprawiać” na serwerze, wystarczy użyć-N
przełącznika z klientem SSH.źródło
Upewnij się, że
/etc/passwd
ma poprawną powłokę dla użytkownika.Na przykład użytkownik
ahmad
nie mógł zalogować się do serwera z powodu braku powłoki:Ponieważ zbiór muszli na
/bin/false
niej oznacza, że użytkownikahmad
nie posiada powłokę, i naprawić to trzeba zmienić/bin/false
, aby/bin/bash
dla bash lub cokolwiek innych skorup.Jeśli korzystasz z panelu kontrolnego hostingu, np. Plesk, upewnij się, że użytkownik ma dostęp do serwera.
źródło
Może to być problem z LDAP. Authconfig do skonfigurowania ustawień LDAP, Kerberos i SMB został uruchomiony bez,
--enablemkhomedir
źródło