Ошибка "Получен слишком большой SFTP-пакет" при подключении с учетной записью root к серверу через WinSCP

Я пробовал разные способы и прочитал некоторые решения, включая следующие:
Почему я не могу ssh как root?
Редактирование с помощью Winscp
И статья с форума Ubuntu

  1. Я не понимаю, почему, когда я соединяюсь с ubuntu через PuTTY я могу получить root-права и изменять файлы. Тем не менее, когда я соединяюсь с ubuntu через WinSCP я другой пользователь (я использовал одно и то же имя пользователя и один и тот же закрытый ключ (pem) в обоих подключаемых программах) и не могу изменять файлы.

  2. Тогда я нашел несколько возможных решений по ссылкам выше. Я пытался установить root пароль и permitRootLogin, Но потом, когда я вхожу с root имя пользователя, это говорит:

    Получен слишком большой (1349281121 B) пакет SFTP. Максимальный поддерживаемый размер пакета составляет 1024000B. Ошибка обычно связана с сообщением, напечатанным из сценария запуска (например,.profile). Сообщение может начинаться с "Призыв".

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

    тогда как когда я сменил имя пользователя обратно на ubuntu, тогда это работает (но я не могу изменить файлы, когда я не root пользователь).

Я очень смущен, пожалуйста, кто-нибудь, если вы можете указать мне, я был бы очень признателен.

2 ответа

Я считаю, что сообщение об ошибке, которое вы получаете, объясняет это.

Ваш сервер root В аккаунте неправильно настроены профильные скрипты. Некоторые из них печатают сообщение, которое нарушает протокол SFTP. Для терминального и нетерминального сеансов есть разные профильные скрипты (тот, у которого есть и у которого нет выделенного TTY). Сообщения могут быть распечатаны только из скрипта, используемого для терминальных сессий. Когда вы печатаете сообщение из скрипта профиля, используемого для нетерминальных сеансов, он ломает любого клиента, используя строгий протокол (такой как SFTP или SCP).

Сообщение начинается с "Plea", как об ошибке говорит. Это может быть что-то тривиальное, как

echo "Please be careful when using root account!"

Вы увидите полное сообщение при входе через терминал SSH (например, PuTTY).

Как правило, вам нужно будет переместить команды, которые выводят сообщение из .bashrc сценарий для .bash_profile,

Работает с ubuntu аккаунт, потому что его профильные скрипты не выводят сообщение об ошибке.

См. Также документацию WinSCP для сообщения об ошибке "Получен слишком большой (... B) пакет SFTP. Максимальный поддерживаемый размер пакета составляет 102400 B".

Я столкнулся с той же проблемой и обнаружил, что в /etc/security/limits.conf превышено максимальное количество входов пользователя, и это не позволяет мне выполнить winscp.

Вы можете либо удалить дополнительных пользователей, либо увеличить лимит входа для этого пользователя.

Вход будет успешным.

Другие вопросы по тегам