我正在尝试更换 proftp 服务器,因为旧服务器在安装过程中已加密并且密钥丢失了。旧服务器在 ftp:21 和 sftp:22/322 上工作正常 旧服务器在 ubuntu 16.04.7 上,新服务器在 ubuntu 22.04.3 上 我在新服务器上安装了 proftpd,在 Ubuntu 安装期间安装了 openssh。
目标是使新服务器与旧服务器相同。因此,在旧服务器上,默认 ssh 端口从 22 更改为端口 322,可以在端口 21(默认)和端口 22(在 /etc/profptd/conf.d/sftp.conf 文件中指定)上访问 proftpd。
在新服务器上,在位于 /etc/profptd/conf.d/sftp.conf 的 sftp.conf 文件中为 proftpd 启用端口 22
所以我可以通过端口 322 ssh 连接到新旧服务器,并通过端口 21 访问两台服务器。
我还可以使用 ftp 客户端(WinSCP)将 sftp:322 发送到两台服务器,也可以使用 ftp:21 发送到两台服务器。
现在的问题是我无法使用 ftp 客户端连接到端口 22 上的新服务器,并且收到以下错误: sftp 连接被拒绝 这可以在旧服务器上完成,并且它们具有与文档中所述相同的 sftp 配置。 profptd 文档中的示例配置
在新服务器上启用了以下设置:/etc/ssh/sshd_config.d *
Port 322
#Port 22
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
HostbasedAuthentication no
IgnoreUserKnownhosts no
PasswordAuthentication yes
KbdInterctiveAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
在新服务器上启用了以下设置:/etc/proftpd/proftpd.conf
*
Include /etc/proftpd/modules.conf
UseIPv6 on
<IfModule mod_ident.c>
IdentLookups off
</IfModule>
DefaultRoot ~
Port 21
AuthOrder mod_auth_pam.c* mod_auth_unix.c
<IfModule mod_quotab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
...
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
RequireValidShell off
Include /etc/proftpd/conf.d/
http://www.proftpd.org/docs/contrib/mod_sftp.html#SFTPHostKey
我在防火墙 ufw 上启用了端口 21、22、322。
我可以 ssh:322 进入服务器,我可以使用 sftp:322 和 ftp:21,但我可以 sftp:22,但我可以在 322 和 22 上使用 sftp 完美访问旧服务器。