はじめに
sftpの設定をしようとして、全然接続出来なくてはまったので、残しておきます。
前提
以下の設定でパスワード認証で接続できるようにします。
項目 | 設定値 |
---|---|
ユーザ名 | sftpuser |
パスワード | sftp1234 |
ホーム | /var/share/sftpuser |
グループの追加
sftp用のユーザを設定します。
sudo groupadd sftp
openssh-serverの設定
デフォルトでsftpの設定は有効になっているはずです。
sftp用の設定を追記します。
Match group sftp
ChrootDirectory ~
ForceCommand internal-sftp
PasswordAuthentication yes
AllowTCPForwarding no
X11Forwarding no
その後sshdを再起動します。
sudo systemctl restart sshd
ユーザ設定
前提の設定でユーザを作成します。
sudo useradd -b /var/share -m --password $(perl -e 'print crypt("sftp1234", "\$6\$salt")') -g sftp -N sftpuser
ChrootDirectoryに指定したフォルダは、rootのみに書き込み権がある状態にしないとエラーになるため、変更します。
sudo chown root /var/share/sftpuser
sudo chmod 755 /var/share/sftpuser
データ格納用フォルダを作成します。
sudo mkdir /var/share/sftpuser/data
sudo chown sftpuser:sftp /var/share/sftpuser/data
確認します。
ls -la /var/share/sftpuser
total 12
drwxr-xr-x 3 root sftp 74 Feb 9 18:08 .
drwxr-xr-x 12 root root 174 Feb 9 18:02 ..
-rw-r--r-- 1 sftpuser sftp 18 Jul 28 2018 .bash_logout
-rw-r--r-- 1 sftpuser sftp 193 Jul 28 2018 .bash_profile
-rw-r--r-- 1 sftpuser sftp 231 Jul 28 2018 .bashrc
drwxr-xr-x 2 sftpuser sftp 6 Feb 9 18:08 data
まとめ
- ChrootDirectoryで指定するフォルダに気を付けましょう。(エラーがわかりにくい)
- 自動的にまとめて設定できるようにシェルスクリプトを作成しておくとよいでしょう