Мне нужно настроить FTP-сервер и SFTP-сервер на EC2 с поддержкой паролей и сертификатов. Я просто использовал стандартные RHEL и Amazon AMI, и я не могу войти в систему.
$ sudo yum install vsftpd
$ sudo adduser someuser
$ sudo passwd someuser
#edit /etc/ssh/sshd_config
PasswordAuthentication yes
#Comment out this line on /etc/pam.d/vsftpd for good measure, read about it elsewhere
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
$ sudo systemctl start vsftpd
Мой vsftpd conf выглядит следующим образом
#edit /etc/vsftpd/vsftpd.conf to disable anon login
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
Я делаю все это, а затем пытаюсь подключиться с другого хоста. SFTP зависает с ошибкой ниже, и мне нужно нажать Ctrl + C, чтобы sftp вышел.
$ sftp -v -P 21 someuser@ec2host
...
debug1: ssh_exchange_identification: 530 Please login with USER and PASS.
Я ожидаю, что мне будет предложено ввести пароль, и я увижу каталог пользователей! Примечание: sftp работает с портом 22 при обычной установке sshd. Есть идеи, что я делаю не так?
Кажется, в Интернете много путаницы между клиентом передачи файлов SSH sftp
и FTP с SSL ftps (см. http-> https).
vsftpd не поддерживает sftp
соединения. Для ftps
подключений вам потребуется ключ SSL + сертификат и соответствующая конфигурация, например
rsa_cert_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES
и тогда вам нужно будет использовать FTP-клиент, который поддерживает ftps (например, lftp
)
На сервере ProFTPd есть модуль SFTP, который можно включить, но он не может использовать один и тот же порт с обычным FTP, поскольку это полностью несовместимый протокол. Вам нужно будет либо запустить его на нестандартном порту, либо переместить сервер openssh на нестандартный порт, чтобы proftpd прослушивал порт 22.
Несмотря на свое название sftp
не имеет абсолютно никакого отношения к FTP. Он не говорит по тому же протоколу. Это ssh-клиент, который передает файлы через ssh-соединение, а не FTP-клиент. SFTP нельзя использовать для подключения к FTP-серверам.