SCPでChrootする方法

WinSCPなどのSFTPクライアントで接続する場合にユーザを他ディレクトリに移動してほしく無い(chrootしたい)場合に使う方法です。
sftp-***というユーザのホームディレクトリから出したくない場合、/etc/ssh/sshd_config に以下を追加します。

Match User sftp-*
  ChrootDirectory ~
  ForceCommand internal-sftp
#Subsystem       sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

という記述も必要であるとしているサイトもありますが、これは不要なようです。

adduser -m sftp-user

こういった指定方法でユーザを作ると規定のホームディレクトリが/home以下に作られますが、これだとログインに失敗しますので別に用意します。

mkdir -m 755 /var/www/html/upload
adduser -d /var/www/html/upload sftp-user

または後から

mkdir -m 755 /var/www/html/upload
usermod -d /var/www/html/upload sftp-user

chroot先のディレクトリはroot所有にします。またパーミッションは755でないと /var/log/secureに
fatal: bad ownership or modes for chroot directory というエラーが出て接続失敗します。

1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
Loading...

    コメント