OpenSSHさえ入っていれば設定だけでSFTPサーバも兼ねる事ができる.
お手軽で良いのだけど, 設定をたまにしかしないので忘れるのでメモ.
よくある設定
CentOS7では
/etc/ssh/sshd_config
に以下の様な内容を追記してやる.
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match User 【ユーザ名】 ChrootDirectory 【初期ディレクトリの1つ上】 ForceCommand internal-sftp -d 【初期ディレクトリ】 # パスワード認証の場合以下 #PasswordAuthentication yes
chrootを使ったjailができるのだけど, 注意が必要なのは
- ChrootDirectoryは所有権がroot:rootでなければならない
- ChrootDirectoryはroot以外が書き込み権限を持ってはならない
というところだと思う.
後はForceCommandのdオプションで初期ディレクトリへ移動するようにできたけど, WindowsのFTPソフトなんかだとうまく動作しなかったりした.
この辺は仕組みをちゃんと理解してないのであかんなぁという感じ.