Я пытаюсь настроить sftp-сервер, но клиент получает ошибку, Connection closed by server with exitcode 1
/var/log/auth.log (ниже) мало помогает, как я могу узнать, в чем ошибка?
Я использую Ubuntu 10.04.1 LTS
sshd[27236]: Accepted password for theuser from (my ip) port 13547 ssh2
sshd[27236]: pam_unix(sshd:session): session opened for user theuser by (uid=0)
sshd[27300]: subsystem request for sftp
sshd[27236]: pam_unix(sshd:session): session closed for user theuser
Обновление: я подталкивал это некоторое время, у меня есть команда sftp на другом сервере, которая дает мне более полезную ошибку.
Request for subsystem 'sftp' failed on channel 0
Couldn't read packet: Connection reset by peer
Все, что я нашел в сети, предполагает, что этот идентификатор является проблемой с sftp-сервером, но когда я удаляю chroot из конфигурации sshd, я могу получить доступ к системе. Я предполагаю, что это означает, что sftp-сервер доступен и настроен правильно.
У меня была точно такая же проблема. Как и предлагает MikeyB, вам, вероятно, потребуется изменить подсистему на internal-sftp. Я изменил в sshd_config следующее:
Subsystem sftp /usr/lib/openssh/sftp-server
Чтобы
Subsystem sftp internal-sftp
Вы также должны изменить значение ForceCommand в строфе Match примерно так:
Match User john-doe
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
По крайней мере, это сработало для меня, надеюсь, это кому-то поможет.
Sftp-server - это внешний двоичный файл. Скорее всего, это не в вашей среде chroot.
Если вы измените sshd_config для использования внутренней подсистемы (если она доступна), она должна начать работать с chroot.
Только что имел это у себя.
Пользователю просто нужно иметь разрешения SSH.