sftpとChrootDirectory(3)
4月14日のエントリと4月25日のエントリで書いた件。大体の環境の作り方はssh5.0のREADMEにしたがって4月14日のエントリで書いていますが、認証方法がイマイチ検証できていませんでした。
4月14日のエントリの段階では、ユーザのホームディレクトリを/(ルート)にして、本来のホームディレクトリのオーナをrootにしなくてはいけないらしくて、その影響で公開鍵と秘密鍵の認証はできないのかなぁと書きました。
でも昨日ユーザのホームディレクトリを/home/hogeみたいに普通のディレクトリで、しかもオーナもそのままでちゃんとChrootDirectoryしてくれることが分かりました。
つまり、こんな手順でOK。
ユーザを作成する。
公開鍵で認証するからパスワードは設定不要。
# useradd user
sftponlyというグループを作成する。
# groupadd sftponly
作成したユーザをsftponlyグループに追加する。
/etc/groupを編集する。
sftponly:x:1002:user
内部のsftpを使うように指定する。
こっちもsshd_configを編集ですね。
#Subsystem sftp /usr/local/libexec/sftp-server Subsystem sftp internal-sftp
認証されたユーザがsftponlyグループの場合、ChrootDirectoryを実施。
Match group sftponly ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp