Я использую CentOS Server 7 на виртуальной машине (ESXi) с правами root. У меня есть скрипт bash (в моем каталоге /etc/profile.d/), который выполняется сразу после входа в систему. До того, как я создал свой файл .sh в каталоге, не было проблем с подключением к моей виртуальной машине через WinSCP. После создания файла и перезагрузки системы я больше не могу подключиться. OpenSSH установлен .. Кажется, что выполнение bash блокирует соединение. Если после этого я удаляю свой .sh файл через консоль, соединение снова устанавливается. Это проблема CentOS? Никогда не было этой проблемы под Ubuntu Server.

Ошибка, которую я получаю:

Не удалось инициализировать протокол SFTP. На хосте работает SFTP-сервер?

Есть идеи? Заранее спасибо!

1 ответ1

1

Вы не показываете нам свой сценарий, так что это, очевидно, несколько умозрительно; но, скорее всего, ваш скрипт не должен быть в profile.d потому что он требует какого-то взаимодействия с пользователем.

Профиль должен быть зарезервирован исключительно для вещей, которые должны работать даже в неинтерактивных сессиях.

Правильное место для интерактивной функциональности, вероятно, вообще отсутствует в ваших сценариях входа, но что-то подобное, например, в вашем $HOME/.bash_profile может, по крайней мере, избежать ущерба для неинтерактивных сеансов.

case $- in *i*) invoke your script here;; esac

Если у вас уже есть .bash_profile , он может уже содержать case $- который вы можете изменить вместо добавления второго.

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