設定
adduser --home / --no-create-home --shell /bin/false sftp-only
/home/sftp-only/.ssh/authorized_keys
+ command="internal-sftp" ssh-rsa ...
/etc/ssh/sshd_config
Subsystem sftp internal-sftp -f authpriv -l info
Match User sftp-only
ChrootDirectory /chroot
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
syntax check
sshd -t
- 何も出力されなければ正常。
sshd再起動
/etc/init.d/ssh restart
ディレクトリ生成時、 現在のディレクトリのgidを引き継ぐ方法
- 参考 : SGID(Set Group ID) - 特殊なアクセス権
- SGID(Set Group ID)をディレクトリに立てれば良い。
chmod g+s dirname
ロギング(未確認)
/home/sftp-only/.ssh/authorized_keys
+ command="internal-sftp -f LOCAL6 -l INFO" ssh-rsa ...
/etc/rsyslog.d/50-sftp.conf
local6.* /var/log/sftp.log
/etc/init.d/rsyslog restart
rsshを使う
- 接続方式をsftpやscp等に限りたいという場合役立つ
/etc/passwd
sftp-only:x:1000:1000:,,,:/home/sftp-only:/usr/bin/rssh
/etc/shells
+ /usr/bin/rssh
/etc/rssh.conf
+ user=sftp-only:022:000100:
user=~の部分は前から
ユーザー名
umask値
access bit(rsync,rdist,cvs,sftp,scpの順。1で許可、0で不許可)
chrootされるパス
- /usr/share/doc/rssh/examples/mkchroot.sh