Назад | Перейти на главную страницу

SFTP «Не удалось подключиться к серверу, ошибка»

У меня проблемы с подключением к моему серверу через SFTP. Я прекрасно могу подключиться к системе по SSH, но по какой-то странной причине я не могу использовать SFTP (что раньше было возможно).

Я очистил ВСЕ свои правила iptables iptables -F все еще нет доступа. Я удалил подсистему (чтобы разрешить ПОЛНЫЙ доступ), но доступа нет. Я хоть убей не могу понять, в чем проблема. Таким образом, сделать решение невозможно.

Обновить

Раздел конфигурации подсистемы из http://pastebin.com/eZwZ5Z7w

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp sftp-server

Это, вероятно, не поможет исходному плакату, но я столкнулся с другой причиной, которая приводит к тем же симптомам.

Симптомы: когда я sftp -v <user>@<host>, соединение блокируется после печати:

debug1: Sending subsystem: sftp

Причина: чтобы обойти системную конфигурацию оболочки по умолчанию, я поместил следующую строку вверху ~/.bashrc:

exec env -i HOME=$HOME TERM=$TERM bash --noprofile --rcfile ~/.bash2

Даже просто exec bash вызывает ту же проблему. Думаю, в этом есть смысл - поиск ~/.bashrc никогда не возвращается - вместо этого запускается новый экземпляр bash, который заменяет старый.

Возможно, удивительно, что ssh-серверу необходимо получить файлы конфигурации оболочки перед запуском. /usr/lib/openssh/sftp-server.

Обновление: см. Также эту связанную запись в FAQ по OpenSSH:
http://openssh.com/faq.html#2.9
(Запись с заголовком: «sftp / scp не удается установить соединение, но ssh в порядке.»)

Удаление подсистемы sftp - это то, что отключит sftp. Попробуйте добавить запись еще раз. Если он по-прежнему не работает после перезапуска службы ssh, обновите вопрос с помощью конфигурации sshd.

Обновить

В предоставленной вами конфигурации не указан полный путь, попробуйте использовать версию с комментариями.

Subsystem sftp /usr/lib/openssh/sftp-server

Например, в моей конфигурации

# grep sftp /etc/ssh/sshd_config 
Subsystem       sftp    /usr/libexec/openssh/sftp-server

и если я ищу файл через locate, он подтверждает, что он находится только там.

# locate sftp-server
/usr/libexec/openssh/sftp-server
/usr/share/man/man8/sftp-server.8.gz