先輩からお願いされたので準備しましたのメモ。
FTPは経験あるけど、SFTPはなかった。
ハマらなければ、約10分で終わる作業です。(と、思います。)
環境
cat /etc/redhat-release CentOS release 6.6 (Final)
ユーザーを作成
$ useradd sftp_user $ passwd sftp_user
ホームディレクトリ作成
$ usermod -d / sftp_user
アクセスするディレクトリの用意
$ chmod 755 /home/sftp_user/
グループユーザの作成
$ groupadd sftp_groupuser
グループユーザに追加
$ usermod -G sftp_groupuser sftp_user
sshの設定ファイル修正
$ vim /etc/ssh/sshd_config Subsystem sftp internal-sftp
作業ディレクトリを作成
Webサーバのドキュメントルートとリンクさせたかったので、シンボリックリンクを貼りました。
$ cd /home/sftp_user/ $ ln -s /var/www/html html
$ chown sftp_user:sftp_user /var/www/html $ chown sftp_user:sftp_user html
sshの設定ファイルに設定追加
$ vim /etc/ssh/sshd_config Match group sftp_groupuser ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
ssh再起動
$ /etc/init.d/sshd restart
原因特定
$ cat /var/log/secure
fatal: bad ownership or modes for chroot directory
fatal: bad ownership or modes for chroot directory
???
!!
ここで注意しないといけないのは、ChrootDirectory で指定するディレクトリは root ユーザーだけが書き込みできる状態でなければなりません。所有者が一般ユーザーだったり、権限が 777 だと /var/log/secure に以下のようなエラーが吐かれます。
ありがとぉ!(;ω;)
$ chown root:root /home/sftp_user/
ログインできた!!!!