ssh-соединение закрывается сразу после ввода пароля

Вопрос или проблема

ssh-соединение закрывается сразу после ввода пароля

ssh -v [email protected]
OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Чтение данных конфигурации /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config строка 47: Применение параметров для *
debug1: Подключение к 104.238.125.233 [104.238.125.233] порт 22.
debug1: Подключение установлено.
debug1: файл идентификации /Users/nicole/.ssh/id_rsa тип -1
debug1: файл идентификации /Users/nicole/.ssh/id_rsa-cert тип -1
debug1: файл идентификации /Users/nicole/.ssh/id_dsa тип -1
debug1: файл идентификации /Users/nicole/.ssh/id_dsa-cert тип -1
debug1: файл идентификации /Users/nicole/.ssh/id_ecdsa тип -1
debug1: файл идентификации /Users/nicole/.ssh/id_ecdsa-cert тип -1
debug1: файл идентификации /Users/nicole/.ssh/id_ed25519 тип -1
debug1: файл идентификации /Users/nicole/.ssh/id_ed25519-cert тип -1
debug1: файл идентификации /Users/nicole/.ssh/id_xmss тип -1
debug1: файл идентификации /Users/nicole/.ssh/id_xmss-cert тип -1
debug1: Локальная строка версии SSH-2.0-OpenSSH_8.1
debug1: Удаленная версия протокола 2.0, удаленная версия программного обеспечения OpenSSH_5.3
debug1: соответствие: OpenSSH_5.3 pat OpenSSH_5* совместимость 0x0c000002
debug1: Аутентификация к 104.238.125.233:22 как 'hoogw'
debug1: SSH2_MSG_KEXINIT отправлено
debug1: SSH2_MSG_KEXINIT получено
debug1: kex: алгоритм: diffie-hellman-group-exchange-sha256
debug1: kex: алгоритм ключа хоста: ssh-rsa
debug1: kex: шифр сервер->клиент: aes128-ctr MAC: [email protected] сжатие: none
debug1: kex: шифр клиент->сервер: aes128-ctr MAC: [email protected] сжатие: none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(2048<3072<8192) отправлено
debug1: получено SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT отправлено
debug1: получено SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Ключ хоста сервера: ssh-rsa SHA256:z9djZdxvUnzM6SLpcFo6INz6ixj3YFIF+dM/h3+JHh4
debug1: Хост '104.238.125.233' известен и соответствует RSA ключу хоста.
debug1: Ключ найден в /Users/nicole/.ssh/known_hosts:1
debug1: rekey out после 4294967296 блоков
debug1: SSH2_MSG_NEWKEYS отправлено
debug1: ожидая SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS получено
debug1: rekey in после 4294967296 блоков
debug1: Попытка ключа: /Users/nicole/.ssh/id_rsa 
debug1: Попытка ключа: /Users/nicole/.ssh/id_dsa 
debug1: Попытка ключа: /Users/nicole/.ssh/id_ecdsa 
debug1: Попытка ключа: /Users/nicole/.ssh/id_ed25519 
debug1: Попытка ключа: /Users/nicole/.ssh/id_xmss 
debug1: SSH2_MSG_SERVICE_ACCEPT получено
debug1: Аутентификации, которые могут продолжаться: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Следующий метод аутентификации: publickey
debug1: Попытка закрытого ключа: /Users/nicole/.ssh/id_rsa
debug1: Попытка закрытого ключа: /Users/nicole/.ssh/id_dsa
debug1: Попытка закрытого ключа: /Users/nicole/.ssh/id_ecdsa
debug1: Попытка закрытого ключа: /Users/nicole/.ssh/id_ed25519
debug1: Попытка закрытого ключа: /Users/nicole/.ssh/id_xmss
debug1: Следующий метод аутентификации: пароль
[email protected]'s пароль: 
debug1: Аутентификация прошла успешно (пароль).
Аутентифицировано к 104.238.125.233 ([104.238.125.233]:22).
debug1: канал 0: новый [клиент-сессия]
debug1: Запрашиваю [email protected]
debug1: Переход в интерактивную сессию.
debug1: pledge: сеть
debug1: Отправка окружения.
debug1: Отправка env LANG = en_US.UTF-8
Последний вход: Пт Апр 24 14:10:52 2020 с 097-090-197-218.res.spectrum.com
debug1: client_input_channel_req: канал 0 rtype exit-status ответ 0
debug1: client_input_channel_req: канал 0 rtype [email protected] ответ 0
debug1: канал 0: свободно: клиент-сессия, nchannels 1
Подключение к 104.238.125.233 закрыто.
Передано: отправлено 2600, получено 2656 байт, за 0.1 секунд
Байты в секунду: отправлено 19405.6, получено 19823.6
debug1: Код выхода 0
nicole@nicoles-iMac ~ % 

Я думаю, что в вашем .bash_profile есть exit 0. Похоже, это причина ваших проблем.

Файл .bash_profile выполняется первым, когда вы входите в удаленный терминал.

Попробуйте выполнить это и дайте нам знать, если проблема сохраняется –

# ssh [email protected] sed -i '/exit\ 0/d' .bashrc .bash_profile

Ответ или решение

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

Проблема

Как видно из предоставленного вами отладочного вывода (ssh -v), SSH-клиент успешно устанавливает соединение с сервером, проходит аутентификацию, но затем закрывает соединение сразу после входа в систему:

debug1: Entering interactive session.
Connection to 104.238.125.233 closed.

Такое поведение может происходить по нескольким причинам. Наиболее распространенной из них является наличие команды exit в конфигурационных файлах оболочки, таких как .bash_profile или .bashrc.

Возможные причины закрытия соединения

  1. Команда exit в конфигурационном файле:
    Как вы уже отметили, exit 0 в файле .bash_profile завершит сессию пользователя сразу после входа, что приведет к закрытию SSH-соединения.

  2. Проблемы с конфигурацией оболочки:
    Если в файлах конфигурации (например, .bashrc) установлены команды, которые могут вызвать выход из сессии или аварийное завершение, это также приведет к закрытию соединения.

  3. Системные ограничения:
    Если на стороне сервера есть установленные ограничения на использование определенных команд или ресурсов, это может вызывать затруднения при входе.

  4. Неправильная установка пользовательского окружения:
    Неправильные настройки окружения пользователя (переменные среды) могут привести к непредсказуемым результатам при входе в систему.

Решение

Для устранения проблемы выполните следующие шаги:

  1. Проверьте и удалите команду exit:
    Подключитесь к серверу с помощью SSH, используя другой способ (например, авторизацию по ключам или консольный доступ), и проверьте содержимое файла .bash_profile и .bashrc. Убедитесь, что там нет команд exit или аналогичных.

    ssh [email protected] sed -i '/exit\ 0/d' .bash_profile .bashrc

    Эта команда удалит все случаи exit 0 из файлов.

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

  3. Логи сервера:
    Просмотрите журналы системного логирования на сервере, такие как /var/log/auth.log или /var/log/secure, в зависимости от операционной системы. Это может дать дополнительную информацию о том, почему сессия закрывается.

  4. Создание резервной копии и тестирование:
    Сделайте резервные копии ваших файлов конфигурации, затем поэкспериментируйте с их содержимым, чтобы понять, какая из команд вызывает проблему.

Заключение

Закрытие SSH-соединения сразу после ввода пароля — распространенная проблема, часто вызванная командой exit в конфигурационных файлах. Следуя предложенным шагам, вы сможете диагностировать и устранить проблему. Убедитесь, что ваше окружение настроено корректно, чтобы избежать неприятных ситуаций в будущем. Если проблема по-прежнему существует, возможно, стоит использовать более детальную отладку или обратиться за поддержкой к администратору сервера.

Оцените материал
Добавить комментарий

Капча загружается...