Więc przejrzałem błąd i sprawdziłem błąd serwera, ale rozwiązania nie pasowały. Większość wyników to problemy z / dev / pts, ale to jest zamontowane. Inne wyniki to błędy w git, ale na maszynie nie ma git.
Moje konto nie jest zablokowane, nadal mogę zalogować się na konsoli. Inni użytkownicy również mają ten problem, więc nie sądzę, że ma to coś wspólnego z czymś, co znajduje się w moim .ssh /
Otrzymuję tę odpowiedź za pomocą ssh -vv:
<snip>
debug1: Next authentication method: password
rogier@server's password:
debug2: we sent a password packet, wait for reply
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug2: channel 0: request env confirm 0
debug2: channel 0: request shell confirm 1
debug2: fd 3 setting TCP_NODELAY
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_status_confirm: type 100 id 0
PTY allocation request failed on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Następnie sesja zawiesza się. Czy ktoś ma pojęcie, co się dzieje?
ssh user@host "/bin/bash -i"
aby się zalogować?/dev/pt*
urządzenia musiały zostać usunięte i ręcznie dodane ponownie, ponieważ zostały uszkodzone. W takim przypadku zadziałało również obejście, które wymieniłem powyżej.ssh user@host "/bin/bash -i
. Czy możesz bardziej szczegółowo określić, które polecenia muszę uruchomić, aby to naprawić? Jak przywrócić/dev/pt*
? Dzięki.mount
, jedną z wypisywanych linii powinien być / dev / pts, zanotuj opcje. Odmontujumount /dev/pts
i zamontuj ponownie,mount -t devpts -o OPTIONS devpts /dev/pts
zastępując OPCJE opcjami obserwowanymi przed odmontowaniem.Odpowiedzi:
Ok, dzięki Tim. umounting / dev / pts, a następnie mount / dev / pts załatwiło sprawę.
źródło
ssh user@host "/bin/bash -i
. Czy możesz bardziej szczegółowo określić, które polecenia muszę uruchomić, aby to naprawić? Dzięki.mkdir /dev/pts
zanim zadziałał. W przeciwnym razie to rozwiązało problem.pozwól, że opowiem ci o wszystkich moich doświadczeniach, próbuję połączyć się z linuksem do systemu Windows za pośrednictwem ssh, miałem serwery z openssh i inne z freessh . Gdy serwer się otworzy, działa dobrze, ale od czasu do czasu zaczyna wyświetlać komunikat „żądanie powłoki nie powiodło się na kanale 0”, gdy freessh jest uruchomioną usługą (przychodzi z dnia na dzień, lepiej działa, openssh)
Test wykonany przeze mnie polegał na próbie ustanowienia połączenia od innego użytkownika, ponieważ widzę, że działa dobrze, tworzę kopię zapasową ~ / .ssh (użytkownika, który przedstawia problem), a następnie działa dobrze.
Wydaje mi się, że zaangażowany plik to znane_hosty, perms wygląda dobrze, podobnie jak zawartość, ale tak to naprawiłem.
źródło
Błąd oznacza po prostu, że otwarcie pseudo terminala nie powiodło się. Najprawdopodobniej nie ma to nic wspólnego z ssh. Aby debugować go po stronie serwera ssh, użyj bardzo prostej wersji demonstracyjnej PTY, takiej jak mypty w http://rachid.koucha.free.fr/tech_corner/pty_pdip.html, aby sprawdzić, czy w ogóle można przydzielić dowolny PTY. Jeśli nie, użyj strace, aby sprawdzić, gdzie zawodzi. (Dla mnie było to brakujące dowiązanie / dev / ptmx w kontenerze, jak wyjaśniono w https://www.kernel.org/doc/Documentation/filesystems/devpts.txt )
źródło
Może zależeć od ciebie LANG i twoich ustawień LC, ale to działa dla mnie:
źródło
LANG
iLC_*
?W moim przypadku łączyłem się z hostem Windows (działającym cygwin i innym pokrewnym oprogramowaniem) z Linux-a.
Dziwne próby połączenia z serwerem Windows działały, ale nie powiodły się podczas przydzielania interaktywnego terminala. Sprawdź
ssh -vv
dzienniki poniżej.Mój kolega zorientował się, że dzieje się tak z powodu wielu otwartych procesów na serwerze Windows, który używał tych samych danych logowania, co mój i wykonywał pewne automatyczne operacje wsadowe.
Zabicie go tymczasowo, załatwiło sprawę i pozwoliło moje połączenie ssh pomyślnie.
Najprawdopodobniej Windows + Cygwin miał maksymalny limit w tym zakresie. Pozostały prace, aby poprawnie przydzielić zasoby, gdy procesy te zostaną uruchomione.
źródło
Podczas ponownego montażu dostaję,
Ale,
Zrób sztuczkę
Odniesienie: http://www.iitk.ac.in/LDP/LDP/lfs/5.0/html/chapter06/proc.html
źródło