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