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

Не удается подключиться через SFTP

У меня есть VPS с Ubuntu18 с установленным vsftp. А у меня клиентский MacBook HighSierra.

Совсем недавно установил VPS, и, поскольку я новичок в сети, я использовал этот руководство по его настройке - кроме TCP-оболочки и fail2ban, о которых я позабочусь в конце. Я получаю доступ к своему серверу, используя SSH с аутентификацией pubkey.

Теперь мне нужно получить доступ к FTP, поэтому я установил vsftp на сервере после этот руководство. Я могу использовать FTP с сервера, но не с клиентской машины (мой Mac). Я узнал, что HighSierra требует SFTP (потому что он более безопасен, чем FTP), но тоже не работает.

Итак, мои открытые порты из ufw status являются:

22                         ALLOW       Anywhere                  
80                         ALLOW       Anywhere                  
443                        ALLOW       Anywhere                  
20                         ALLOW       Anywhere                  
20/tcp                     ALLOW       Anywhere                  
21/tcp                     ALLOW       Anywhere                  
21                         ALLOW       Anywhere                  
22 (v6)                    ALLOW       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)             
20 (v6)                    ALLOW       Anywhere (v6)             
20/tcp (v6)                ALLOW       Anywhere (v6)             
21/tcp (v6)                ALLOW       Anywhere (v6)             
21 (v6)                    ALLOW       Anywhere (v6)

Мой /etc/ssh/sshd_config файл выглядит так (обратите внимание, что у меня есть пользователь my-user и пользователь my-userftp):

Port 22
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM no
X11Forwarding no
PrintMotd no
UseDNS no
AcceptEnv LANG LC_*
Subsystem   sftp    /usr/lib/openssh/sftp-server
PermitRootLogin no

AllowUsers my-user*

Match Group sftp_users
ChrootDirectory /home/my-userftp/
ForceCommand internal-sftp

И вот мой /etc/vsftpd.config:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
chroot_local_user=YES

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist

userlist_deny=NO

tcp_wrappers=YES

user_sub_token=$USER

local_root=/home/$USER/ftp

и /etc/vsftpd.userlist написано только "my-userftp".

Наконец, в моей системе есть два пользователя: my-user (sudoer для общего управления) и my-userftp (специально для передачи файлов, из группы sftp_users). Моя структура папок из /home/my-userftp является:

total 12
4 dr-xr-xr-x 3 nobody  nogroup    4096 Dec 21 13:19 ftp
4 drwxr-xr-x 2 my-userftp sftp_users 4096 Dec 21 15:37 sftp
4 -rw-r--r-- 1 root    root        130 Dec 20 19:09 steps

Пытаясь получить доступ через FileZilla, используя конфигурацию (протокол SFTP, my-userftp, пароль пользователя, порт 22), я получаю сообщение об ошибке:

Status:         Connecting to x.x.x.x...
Response:   fzSftp started, protocol_version=8
Command:    open "my-userftp@x.x.x.x" 22
Command:    Trust new Host-key: Once
Command:    Pass: *************
Error:          Connection reset by peer
Error:          Could not connect to server

Затем с помощью AuthKey в FileZilla:

Status:         Connecting to x.x.x.x...
Response:   fzSftp started, protocol_version=8
Command:    keyfile "/Users/user/Documents/id_rsa_filezilla.ppk"
Command:    open "my-userftp@.x.x.x" 22
Command:    Trust new Hostkey: Once
Command:    Pass: 
Error:          Authentication failed.
Error:          Critical error: Could not connect to server

И мысленный терминал (на Mac) он дает мне:

packet_write_wait: Connection to x.x.x.x port 22: Broken pipe
Connection closed

Что может пойти не так и как я могу это решить? Надеюсь, я дал достаточно информации. Я не очень разбираюсь в системных сетях, хотя учусь. Заранее спасибо.