AmazonLinux2にvsftpdでFTPサーバの構築を実施し、テスト接続しようとしたところ下記のエラーが発生しました。
530 Login incorrect.
$ lftp -u ftpsecure ftp.hostname パスワード: ftp.hostname:> ls ls: ログインに失敗しました: 530 Login incorrect.
正確には上記のように接続後にlsコマンドを実行したときのエラーになります。
この手のエラーはvsftpdのユーザー設定(user_listの記述が足りない等)に誤りがある場合に出ます。
なのでまずは下記の2点を確認しました。
・user_listにFTPユーザー(ftpsecure)の記述
・vsftpd.confのuserlist_enable=YESの記述
この記述が正しい状態でも同様のエラーが出る場合はユーザーに問題があります。
私が直面したエラーの場合はログインシェルの記述が足りないのが原因でした。
なのでログインシェルを書き換えます。
$ sudo vi /etc/shells
/sbin/nologinと/bin/dashの2行を追加しました。
/bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/tcsh /bin/csh /sbin/nologin
これで再度接続したところエラーが解消されました。
$ lftp -u ftpsecure ftp.hostname パスワード: ftp.hostname:> ls drwxrwx--- 2 1026 1025 22 Feb 02 11:05 test
追加した2行のシェルはログインできないユーザーを作成したときに使用するものになります。
初代のAmazonLinuxではこの記述があったのですがAmazonLinux2にはなくなっています。
RHEL7系環境でFTPサーバ構築時には気を付ける必要があります。
なお、FTPユーザーとしてログインできるユーザーを作成していればそもそもこのエラーは回避できます。