LoginSignup
133
134

More than 5 years have passed since last update.

SFTPサーバを用意する

Last updated at Posted at 2014-05-01

環境
- Ubuntu 12.10 64bit

要求
- 専用のユーザを作成して、SFTP 接続のみ利用可能で、SSH 接続を許可しない。
- アップロード先のディレクトリだけアクセス可能にしたい。

(参考)SSH(シェル)の制限かけてchrootの設定を有効にしたSFTPサーバを提供する方法

-
SFTP専用のユーザを作成してパスワードを設定する

$ sudo useradd sftp-user
$ sudo passwd sftp-user 

SFTP専用ユーザのホームディレクトリを /(rootディレクトリ)に設定する
ChrootDirectory を使うと見かけ上ホームディレクトリは / になるため。

$ sudo usermod -d / sftp-user 

実際にファイルを読み書きするディレクトリを作成する

$ sudo chown root:root /home/
$ sudo mkdir /home/sftp-user
$ sudo chown root:root /home/sftp-user
$ sudo chmod 755 /home/sftp-user

SFTP専用ユーザーのグループを作成する

$ sudo groupadd sftponly

SFTP専用ユーザーのグループを設定を変更する

$ id sftp-user 
uid=1001(sftp-user) gid=1001(sftp-user) groups=1001(sftp-user)
$ sudo usermod -G sftponly sftp-user
$ id sftp-user 
uid=1001(sftp-user) gid=1001(sftp-user) groups=1001(sftp-user),1002(sftponly)

sshd設定、internal-sftpを使用する

$ sudo vim /etc/ssh/sshd_config 

/usr/lib/openssh/sftp-serverをコメントアウトし、 internal-sftp を追加する

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

SFTP専用ユーザが読み書きするディレクトリを作成する
下記の例では、接続すると test ディレクトリのみが表示されるようになる。

$ cd /home/sftp-user
$ sudo mkdir test
$ sudo chown sftp-user:sftp-user test

SFTP専用ユーザをchrootに閉じ込める

$ sudo vim /etc/ssh/sshd_config 

下記の設定を追加する。

Match group sftponly
  ChrootDirectory /home/%u
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

sshdを再起動する

$ sudo service sshd restart

-

ssh(シェル)が実行できないことを確認する

$ ssh sftp-user@123.45.67.890 
sftp-user@123.45.67.890's password: 
This service allows sftp connections only.
Connection to 123.45.67.890 closed.
133
134
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
133
134