sftp サーバを立ててみる - sshd で chroot
環境は、
FreeBSD eagle 7.2-RELEASE-p2 FreeBSD 7.2-RELEASE-p2 #0: Wed Jun 24 00:14:35 UTC 2009 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
まずは、sftp でログインさせる用のアカウントを作成。group は sftponly に。
通常のログインはさせたくないので、
shell nologin
にしておく。
/etc/ssh/sshd_config に以下を追加。
Subsystem sftp internal-sftp # さっきの sftponly にマッチさせるルールを書く Match Group sftponly # あんまりやりたくないけど、クライアントの関係でパスワード認証をしぶしぶ有効に PasswordAuthentication yes AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no # 通常はこっちですが、 # ChrootDirectory /home/%u # root になるディレクトリ。owner:group は root:wheel である必要がある。 # ついでに言うと、ディレクトリのパーミッションによっては弾かれるので、エラーになったらログを見てね。 ChrootDirectory /export/tank # これやっちゃうと nologin にした意味が無い気もするけど ForceCommand internal-sftp
これで完了! 簡単すぎるぐらい簡単だった。