Вопрос или проблема
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
.
Возможные причины закрытия соединения
-
Команда exit в конфигурационном файле:
Как вы уже отметили,exit 0
в файле.bash_profile
завершит сессию пользователя сразу после входа, что приведет к закрытию SSH-соединения. -
Проблемы с конфигурацией оболочки:
Если в файлах конфигурации (например,.bashrc
) установлены команды, которые могут вызвать выход из сессии или аварийное завершение, это также приведет к закрытию соединения. -
Системные ограничения:
Если на стороне сервера есть установленные ограничения на использование определенных команд или ресурсов, это может вызывать затруднения при входе. -
Неправильная установка пользовательского окружения:
Неправильные настройки окружения пользователя (переменные среды) могут привести к непредсказуемым результатам при входе в систему.
Решение
Для устранения проблемы выполните следующие шаги:
-
Проверьте и удалите команду exit:
Подключитесь к серверу с помощью SSH, используя другой способ (например, авторизацию по ключам или консольный доступ), и проверьте содержимое файла.bash_profile
и.bashrc
. Убедитесь, что там нет командexit
или аналогичных.ssh [email protected] sed -i '/exit\ 0/d' .bash_profile .bashrc
Эта команда удалит все случаи
exit 0
из файлов. -
Проверка конфигурационных файлов:
Посмотрите полностью.bash_profile
и.bashrc
на наличие других команд, которые могут вызывать выход из сессии. Убедитесь, что все команды запускаются корректно и не вызывают ошибок. -
Логи сервера:
Просмотрите журналы системного логирования на сервере, такие как/var/log/auth.log
или/var/log/secure
, в зависимости от операционной системы. Это может дать дополнительную информацию о том, почему сессия закрывается. -
Создание резервной копии и тестирование:
Сделайте резервные копии ваших файлов конфигурации, затем поэкспериментируйте с их содержимым, чтобы понять, какая из команд вызывает проблему.
Заключение
Закрытие SSH-соединения сразу после ввода пароля — распространенная проблема, часто вызванная командой exit
в конфигурационных файлах. Следуя предложенным шагам, вы сможете диагностировать и устранить проблему. Убедитесь, что ваше окружение настроено корректно, чтобы избежать неприятных ситуаций в будущем. Если проблема по-прежнему существует, возможно, стоит использовать более детальную отладку или обратиться за поддержкой к администратору сервера.