2

Здесь я приведу полную справочную информацию, не уверен, насколько она будет значимой, но это не повредит ...

Итак, у меня была виртуальная машина с сервером Ubuntu 13.10, которую я недавно обновил 14.04 LTS.

После обновления оказалось, что я не смог зайти в машину по ssh. Вход через локальную консоль был в порядке, и ssh out был в порядке.

После некоторой путаницы я обнаружил, что ssh не работает только для одного конкретного имени пользователя. Использование второго имени пользователя оказалось успешным.

Я перепробовал несколько клиентов ssh и каждый раз получаю одну и ту же ошибку для одного пользователя:

Software caused connection abort.

Теперь, насколько я понимаю, это происходит из самой Windows, поэтому я спрашиваю вас, какие могут быть возможные причины для этого?

Журналы PuTTY показывают, что аутентификация с открытым ключом прошла успешно, а затем внезапно без видимой причины отключилась:

Event Log: Access granted
Outgoing packet #0x8, type 90 / 0x5a (SSH2_MSG_CHANNEL_OPEN)
...
Outgoing raw data
...
Event Log: Network error: Software caused connection abort

Я пробовал это с несколькими клиентами ssh, с нескольких машин Windows, на трех разных сайтах, и результат всегда одинаков. Один пользователь работает нормально, другой отказывает, так что можно предположить, что с Ubuntu что-то не так?

ОБНОВИТЬ

Итак, следуя совету Chirag64, ssh 127.0.0.1 подключается нормально, однако ssh <baduser>@127.0.0.1 завершается с тем же сообщением об ошибке.

Я проверил членство в группах, аутентификацию и оболочку пользователя, которые совпадают с рабочим пользователем.

su baduser позволяет мне перейти к этому пользователю и установить исходящие ssh-соединения, однако ssh-соединение с обратной связью с использованием текущего пользователя завершается неудачно.

Кажется, это просто входящие соединения с тем или иным пользователем по тем или иным причинам.

2 ответа2

1

"Отмена соединения вызвана программным обеспечением" означает, что сервер прерывает соединение, поэтому, вероятно, не имеет значения, какую клиентскую программу вы используете.

Первое, что нужно проверить, - это разрешения файловой системы для пользователя на сервере Ubuntu. Проверьте разрешения для домашнего каталога пользователя, каталога .ssh пользователя и файлов в каталоге .ssh. Сравните их с теми же разрешениями для пользователя, который работает. Сервер OpenSSH довольно требователен к этим разрешениям, и в некоторых конфигурациях он не позволяет пользователю подключаться, если возможно, что кто-то еще изменил файлы пользователя.

Если это не решает проблему, и у вас есть доступ суперпользователя к серверу Ubuntu, вы можете запустить отладочный экземпляр демона SSH и посмотреть, что он регистрирует, когда получает соединение для этого пользователя:

/path/to/sshd -ddd -p 10022

Это запустит копию sshd прослушивания порта 10022. Это не поставит себя на задний план. Когда вы подключитесь к нему со своим клиентом, он выведет отладочную информацию на ваш терминал. Надеюсь, информация об отладке даст вам лучшее представление о том, почему он разрывает соединение.

Если вы все еще не можете понять проблему, попробуйте запустить sshd через strace:

strace -f /path/to/sshd -ddd -p 10022

strace напечатает системные вызовы, выполняемые программой sshd . Последние несколько системных вызовов, выполненных sshd перед разрывом соединения, могут дать вам представление о том, что он проверял в то время.

0

У меня были подобные проблемы, и каждый раз, казалось, что это проблема с .bashrc. Попробуйте очистить любую пользовательскую конфигурацию от .bashrc и .bash_profile.

редактировать: для этого конкретного пользователя (/home//.bashrc)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .