Во входе в систему SSH существует три широких шага:
От этой части ssh -v
трассировка:
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending command: /bin/bash
мы видим, что аутентификация, за которой следуют на уровне SSH и ssh демоне, запустила оболочку (/bin/bash
). Таким образом, это - что-то в /bin/bash
или его конфигурация, которая предотвращает вход в систему. Проверьте файлы инициализации удара: ~root/.bash_login
, ~root/.bash_profile
, /etc/profile
и другие файлы они могут включать. Попробуйте неинтерактивный вход в систему: ssh root@localhost ls
; это все еще пройдет удар, но не через те же файлы инициализации (удар является странным, он читает ~/.bashrc
для неинтерактивного входа в систему, когда его родитель rshd
или sshd
).
Если существует что-то прерванное файл инициализации, можно вспыхнуть путем нажатия Ctrl+C в точно правильное время (после того, как сессия SSH устанавливается, так, чтобы SSH отправил Ctrl+C в удаленный хост и не закрыл соединение, но прежде чем неприятная инструкция в файле инициализации будет выполнена). На практике правильное время может часто достигаться вручную с несколькими попытками; это может помочь загрузить машину. Если Вы не можете сделать его вручную, маленькое expect
программа должна получить Вас там.
Шаблонное средство, которое на самом деле помогает, трудно разработать и требует нетривиального объема кода. Я рекомендую искать что-то существующее и возможно настроить его на Ваши потребности, вместо того, чтобы создать его с нуля.
Wiki Emacs перечисляет несколько пакетов. Основные кандидаты: