3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HajimariAdvent Calendar 2024

Day 21

サーバー上にSFTPユーザーを作成し、SFTP接続してみた

Last updated at Posted at 2024-12-23

とあるタスクでSFTP接続に関して調べたため、自分への復習も兼ねてアウトプットします。

SFTP接続とは

SFTP(SSH File Transfer Protocol)は、SSHトンネルを利用して、サーバー間でファイルのやり取りができるプロトコルです。通常のFTPと比較して、やり取りが暗号化されているため、より安全にファイルのやり取りができます。

やりたいこと

タスクでは、下記内容を行いました。
・接続するサーバー上にSFTPでアクセスできる特定のユーザーアカウントを作成する。
・サーバーにホスティングされているWordPressの特定のディレクトリにファイルを送る。
※サーバーはAWSのLinuxサーバーを使用しております。

手順

1.SSH接続をしたのち、接続するサーバー上にSFTPでアクセスできる、特定のユーザーアカウントを作成する

# サーバーにSSH接続をする。
ssh -i {秘密鍵情報} (ユーザー名)@(サーバーのIPアドレス)

# SFTP接続設定を行うために管理者権限設定
sudo su 

# ユーザーを作成する(例: sftp_user)
useradd sftp_user

# パスワード設定
passwd password

# ユーザーが作成されているか確認
cd /home
ls

2.作成したユーザーのユーザーディレクトリに「755」権限を付与する

chmod 755 /home/sftp_user

# パーミッションの確認
ls -la

3.sshd_config(サーバーのSSHの設定ファイル)でSFTP設定をし、SFTPユーザーのみパスワード認証をする。
PasswordAuthentication yesにすることで、ユーザーはパスワード認証によってSFTP接続ができる。
ForceCommand internal-sftpにすることで、このユーザーはデフォルトSFTP接続で、ssh接続は行わないという設定を行う。

vi /etc/ssh/sshd_config
→ Match User sftp_user
	  PasswordAuthentication yes
	  ForceCommand internal-sftp

# sshdの再起動
systemctl restart sshd

4.ユーザーディレクトリにマウントする用のディレクトリを作成する

cd /home/sftp_user
mkdir wp-content

5.ユーザーディレクトリをWordPressのファイルがホスティングされているパブリックディレクトリにマウントする

# ユーザーディレクトリをWordPressのファイルがホスティングされているパブリックディレクトリにマウントする
# mount --bind (マウントする側のディレクトリ)(マウントされる側のディレクトリ)
mount --bind /var/www/html/wp-content /home/sftp_user/wp-content

マウントされる側のディレクトリに上記/home/sftp_userがあるかどうか確認する。
mount

6.マウントの永続化設定をし、正しく適用できているのかを確認する。

# fstabファイル(マウントの設定について書かれたファイル)を編集して永続マウントの設定を追加
vi /etc/fstab

# 下記の永続マウントの設定を追加する
/var/www/html/wp-content /home/sftp_user/wp-content none bind 0 0

# 永続化マウントの設定が適用されているのかを確認
mount -a

7.SFTPクライアントから接続をし、特定のディレクトリにファイルを転送する
例)WinSCP、FileZilla

ディレクトリの権限

ディレクトリに権限をつける理由は、セキュリティアクセス制御のためです。

セキュリティ: サーバに接続できた人全員がディレクトリ内のファイルに対して変更ができないようにし、データの破壊等を防ぐため

アクセス制限: 認証されたユーザーでも、必要以上の権限(書き込み権限等)を付与しないことによって、意図しない変更を防ぐため

ディレクトリの権限変更はchmod、所有者変更はchownで行います。

権限 説明 数値表現
読み取り (r) ファイルやディレクトリ内容の閲覧が可能 4
書き込み (w) 内容の変更や新しいファイルの作成が可能 2
実行 (x) ファイルの実行、ディレクトリへのアクセス 1

例)750→所有者はすべての権限、所有者グループのユーザーは読み取りと実行、その他の方は権限なし

最後に

最後まで読んでいただき、ありがとうございます!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?