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するという目的を果たすことができました。