LinuxでSFTPサーバーを設定する方法

LinuxでSFTPサーバーを設定する方法

Linuxサーバーディストリビューションはどれも非常にパワフルで、ビジネスニーズをはるかに超えるパフォーマンスを発揮します。どんなタスクでもサーバーに任せれば、すぐに対応できます。また、初期状態では対応していない場合でも、カスタマイズして対応させることができます。

SFTP についてよくわからない場合は、これは Secure Shell (SSH) に組み込まれた FTP サービスであり、ユーザーは SSH を使用してサーバーとの間でファイルを安全にプッシュおよびプルできます。

SFTPサーバーの設定手順を詳しく説明します。まずは、SFTPログインのみに制限されたユーザーを1人作成します。設定方法がわかれば、必要な数のユーザーを作成できます。この手順はどのLinuxディストリビューションでも実行できます。

うまく機能させましょう。

参照: Linux のトラブルシューティング: 管理者向けガイド (TechRepublic Premium)

必要なもの

管理者権限を持つアカウントへのアクセスが必要です。アクセス権限を取得したら、いよいよ作業を開始しましょう。

SFTPディレクトリ

まず最初に、FTPデータを保存するディレクトリを作成します。ターミナルウィンドウを開き、suコマンドでrootユーザーになり(suと入力し、プロンプトが表示されたらrootユーザーのパスワードを入力します)、以下の2つのコマンドを実行します。

mkdir -p /data
chmod 701 /data

参照: Linux のknown_hosts ファイルに SSH フィンガープリントを追加する方法 (TechRepublic)

SFTPグループとユーザーを作成する

次に、SFTPユーザー用の特別なグループを作成します。これは以下のコマンドで実行します。

groupadd sftp_users

ここで、通常のログイン権限を持たない、新しく作成したsftp_usersグループに属する特別なユーザーを作成します。このユーザーの名称は自由に決めてください。コマンドは以下のとおりです。

useradd -g sftp_users -d /upload -s /sbin/nologin USERNAME

ここで、USERNAME はユーザーの名前です。

次に、新しいユーザーにパスワードを設定します。このパスワードは、新しいユーザーがsftpコマンドでログインする際に使用するパスワードになります。パスワードを設定するには、次のコマンドを実行します。

passwd USERNAME

ここで、USERNAME は上記で作成したユーザーの名前です。

参照: Linux でサービスを開始、停止、再起動する方法 (TechRepublic)

新しいユーザーSFTPディレクトリを作成する

次に、新しいユーザー専用のアップロードディレクトリを作成し、適切な権限を付与します。これは以下のコマンドで行います。

mkdir -p /data/USERNAME/upload
chown -R root:sftp_users /data/USERNAME
chown -R USERNAME:sftp_users /data/USERNAME/upload

ここで、USERNAME は上記で作成した新しいユーザーの名前です。

sshdを設定する

次のコマンドで SSH デーモン構成ファイルを開きます。

nano /etc/ssh/sshd_config

そのファイルの下部に次の行を追加します。

Match Group sftp_users
ChrootDirectory /data/%u
ForceCommand internal-sftp

ファイルを保存して閉じます。次のコマンドでSSHを再起動します。

systemctl restart sshd

参照: Linux CentOS の代替オプションと代替品ベスト 5 (TechRepublic)

ログイン

ログインする準備が整いました。ネットワーク上の SSH がインストールされている別のマシンから、ターミナル ウィンドウを開いて次のコマンドを発行します。

sftp USERNAME@SERVER_IP

USERNAMEは新しいユーザー名、SERVER_IPはSFTPサーバーのIPアドレスです。USERNAMEのパスワードの入力を求められます。認証に成功すると、sftpプロンプトが表示されます。「pwd」と入力して動作パスを確認すると、下の画像のように/uploadが表示されます。

認証が正常に完了すると、sftpプロンプトが表示されます。画像: Jack Wallen

シンプルな解決策

LinuxにSFTPサーバーを構築する方法はこれだけです。従業員や顧客にシンプルで安全なファイルのアップロード・ダウンロード手段を提供したい企業にとって、これは優れたソリューションであるだけでなく、非常に予算にも優しいソリューションです。SFTPサーバーをゼロコストで簡単に立ち上げ、運用できます。

この記事はもともと2019年9月に公開されました。2025年1月にAntony Peytonによって更新されました。

Tagged: