LinuxでSFTPのみ利用可能なユーザを作成する

LinuxでSFTPのみ利用可能なユーザを作成する

LinuxでSFTPのみ利用可能なユーザ作成の備忘録となります。

SFTPユーザの追加

ユーザを追加してパスワードを設定

$ sudo useradd -s /bin/false sftpuser
$ sudo  passwd sftpuser

SFTPログイン時のディレクトリを作成

SFTPログイン時に表示されるディレクトリを作成します。
作成するディレクトリの所有者はrootでないとSFTP接続時にエラーが出るので必ずrootにしてください。
そのためログインディレクトリの配下にSFTPユーザが書き込み出来るディレクトリを作成します。

$ sudo mkdir /home/sftpuser-data/
$ sudo chown root /home/sftpuser-data/
$ sudo mkdir /home/sftpuser-data/data
$ sudo chmod 775 /home/sftpuser-data/data

SFTPユーザの閲覧ディレクトリを制限するがめにsshd_configを開き設定を追記します。

$ sudo vi /etc/ssh/sshd_config

sshd_configの末尾に以下を追記します。

Match User sftpuser
  ChrootDirectory /home/sftpuser-data/
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

また、Subsystem sftp /usr/libexec/openssh/sftp-serverの行があれば以下のように変更しておきます。

Subsystem      sftp    /usr/libexec/openssh/sftp-server
↓
Subsystem       sftp    internal-sftp

設定の反映

sshdを再起動して設定を反映します。

$ sudo systemctl restart sshd

(Visited 46 times, 1 visits today)