以前のサーバーがインストール中に暗号化されてキーが失われたため、proftpサーバーを交換しようとしました。以前のサーバーは ftp:21 と sftp:22/322 で正常に動作していました。古いサーバーはubuntu 16.04.7にあり、新しいサーバーはubuntu 22.04.3にありました。新しいサーバーにproftpdをインストールし、Ubuntuのインストール中にopensshをインストールしました。
目標は、新しいサーバーを古いサーバーと同じにすることです。したがって、既存のサーバーではデフォルトのSSHポートが22から322に変更され、proftpdはポート21(デフォルト)とポート22(/etc/profptd/conf.d/sftp.confファイルで指定)で接続できます。 )。
新しいサーバーの/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を使用すると、以前のサーバーに完全にアクセスできます。