无法通过 sftp 访问 proftpd 服务器:端口 22

无法通过 sftp 访问 proftpd 服务器:端口 22

我正在尝试更换 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

/etc/profptd/conf.d/ 中的 sftp.conf 文件

所以我可以通过端口 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 完美访问旧服务器。

答案1

这已经排序了。

解决办法是sftp模块(mod_sftp.c)默认没有启用。这些模块可以在 /etc/proftpd/modules.conf 中找到,取消注释 mod_sftp 部分

SFTP模块

所以我安装了proftpd-mod-crypto、proftpd-mod-ldap和proftpd-mod-wrap。

相关内容