На сервере я установил openSUSE, настроил SSH так, чтобы был разрешен только один пользователь, разрешен только открытый ключ (без pam, без пароля), приходящий с определенного IP.
SSH работает, переадресация X11 работает, SFTP работает.
Теперь мне нужна была вторая система, практически идентичная с точки зрения внешнего мира. Я установил Xubuntu, настроил SSH, брандмауэр, скопировал точно такую же конфигурацию SSH и ключи из openSUSE, и...
SSH работает, пересылка X11 работает, SFTPнеработа.
Я использую FileZilla для подключения, и он выдает ошибку "sftp получил неожиданный конец файла от сервера sftp". Я немного погуглил и нашел совет проверить "/var/log/auth.log" на сервере, что я и сделал, и все было замечательно, когда я пытаюсь подключиться с помощью SFTP, я вижу только одно сообщение "sshd[11835]: Accepted publickey for ...".
Что может быть причиной такой разницы и как ее исправить?
решение1
Наконец нашел. Я попробовал другие клиенты, надеясь, что один из них прольет свет на ситуацию, и действительно, "sftp -v" это сделал. Конфигурация sshd, которую я скопировал, использовала внешний сервер sftp (который присутствовал в openSUSE, но не был в Xubuntu). Я изменил его на внутренний сервер, и теперь я могу подключаться и с помощью Xubuntu.
Вот пост, который помог:OpenSSH: Разница между внутренним sftp и sftp-сервером
решение2
Вы уже установили FTP-сервер? Если нет, установите демон FTP-сервера, например vsftp, как показано ниже
sudo zypper -n in vsftpd
Затем настройте /etc/vsftpd.conf
файл. В противном случае перепроверьте конфигурацию клиента и убедитесь, что вы указали правильный каталог закрытого и открытого ключа SSH.