У меня проблемы с подключением к моему серверу через 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