ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

VPSにSFTPを用意した件

スポンサードリンク

http://www.flickr.com/photos/27011976@N06/2969513098
photo by islandinthenet


先輩からお願いされたので準備しましたのメモ。


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

アクセステスト

Error: Connection reset by peer
Error: Could not connect to server


うぐぐぐぐ・・・・

原因特定

$ cat /var/log/secure

fatal: bad ownership or modes for chroot directory

fatal: bad ownership or modes for chroot directory


???



blog.manabusakai.com



!!

ここで注意しないといけないのは、ChrootDirectory で指定するディレクトリは root ユーザーだけが書き込みできる状態でなければなりません。所有者が一般ユーザーだったり、権限が 777 だと /var/log/secure に以下のようなエラーが吐かれます。


ありがとぉ!(;ω;)

$ chown root:root /home/sftp_user/

ログインできた!!!!


再び問題&解決


シンボリックリンクのディレクトリにアクセスできず、ダウンロードしようとする。


わからん。。。。


調べてきました。


どうやら、FTPシンボリックリンクは認識されないもよう


mountにしました。(マウントすげー)

$ rm -rf html
$ mkdir html
$ mount --bind /var/www/html html


これで問題なくできました!


※アプリケーションのユーザー名変更なのではまた後日