sftpとChrootDirectory(4)

ずいぶん前(6月27日)のエントリに書いた件。できないよーとのコメント。サーバの入れ替え中なので、検証してみるとやはりできない。少々しらべてみて、記述が足りないことに気がつきました。肝心なこと書いていませんでした。

ユーザを作ったり、sshd_configを編集したり、公開鍵を置くところまでは同じ。重要な点は、sshd_config中のChrootDirectoryディレクティブで指定するディレクトリのオーナ、グループがroot:rootであること。ここがホームディレクトリ以下だとオーナが悪い(root:rootじゃない)ということで認証エラーになります。

よって、ユーザhogeのホームディレクトリが/home/hogeだったとして、ChroootDirectory先を全然別のところに作ってあげるといい。

# mkdir -p /home2/hoge
# chown root:root /home2/hoge

としてからsshd_configを以下のように編集。

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

ChrootDirectory先の/home2/hogeのオーナがroot:rootであり、かつホームディレクトリの/home/hogeのオーナがhoge:hogeということで、鍵認証しつつChrootDirectoryするという目的を果たすことができました。