SFTPはSSH通信でFTP接続をするものです。
つまり、SSHで接続可能なFTPユーザーを作成すればSFTPで接続可能になります。
FTPサーバ側の設定は特に変更する必要はありません。
まずはユーザーを作成します。
$ useradd username
続いてルートファイルを作成します。
$ vi /etc/vsftpd/vsftpd_user_conf/username
local_root=/var/ftpsecure/username
$ sudo chmod 600 /etc/vsftpd/vsftpd_user_conf/username
作成したユーザーのFTP用ディレクトリを作成します。
$ mkdir /var/ftpsecure/username $ chown tec:ftpsecure /var/ftpsecure/username $ chmod 770 /var/ftpsecure/username
※蒸気はvsftpdのデフォルト設定でftpディレクトリを作成しています。
vfstpdにユーザーを追加します。
$ vi /etc/vsftpd/user_list
ファイルにusernameを1行追加します。
最後にsshで接続する鍵を作成し配置します。
$ cd /home/username $ mkdir .ssh $ chmod 700 .ssh $ chown username:username -R .ssh $ cd .ssh $ ssh-keygen -t rsa $ mv id_rsa.pub authorized_keys $ chmod 600 authorized_keys
これでSFTP接続用のユーザー作成が完了します。
続いて接続確認を行います。
先ほどの手順で生成された秘密鍵(id_rsa)をFTP接続するクライアントに置きます。
下記のコマンドで接続ができれば接続確認完了です。
$ sftp -oIdentityFile=~/.ssh/id_rsa sftpuser@xxx.xxx.xxx.xxx ※xxx.xxx.xxx.xxxはFTPサーバのホスト名
以上がvsftpでのSFTPユーザー作成と確認手順でした。
なお、上記の手順はAmazonLinuxで実施したものになります。