このチュートリアルでは、Ubuntu 22.04JammyJellyfishでSFTPサーバーをセットアップする方法を示します。
FTPはファイルにアクセスして転送するための優れたプロトコルですが、クリアテキストプロトコルであるという欠点があります。 。つまり、クレデンシャルとデータは暗号化なしで送信されるため、インターネット接続を介して使用することは安全ではありません。 SFTPの「S」は「Secure」の略で、SSHを介してFTPプロトコルをトンネリングし、安全な接続を確立するために必要な暗号化を提供します。
このチュートリアルでは、次のことを学びます。
- SSHデーモンをインストールして構成する方法
- SFTPユーザーアカウントとグループを設定する方法
- GUIを介してSFTPサーバーに接続する方法
- コマンドラインからSFTPサーバーに接続する方法
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
システム | Ubuntu22.04ジャミークラゲ |
ソフトウェア | SSHデーモン |
その他 | rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 |
コンベンション | # –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
SSHデーモンの構成
- SFTPにはSSHが必要なため、SSHサーバーがシステムにまだインストールされていない場合は、コマンドラインターミナルを開いて次のコマンドを実行してインストールします。
$ sudo apt update $ sudo apt install ssh
- SSHをインストールしたら、SSHD構成ファイルにいくつかの変更を加える必要があります。 nanoまたはお気に入りのテキストエディタを使用して、root権限で開きます:
$ sudo nano /etc/ssh/sshd_config
- ファイルの一番下までスクロールし、最後に次の5行を追加します。
Match group sftp ChrootDirectory /home X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
上記の行は、
sftp
のユーザーを許可します グループはSFTP経由でホームディレクトリにアクセスしますが、通常のSSHアクセスを拒否するため、シェルにアクセスすることはできません。これらの行を貼り付けたら、構成ファイルを保存して閉じます。 - これらの新しい変更を有効にするためにSSHサービスを再起動するには、次のコマンドを実行します。
$ sudo systemctl restart ssh
SSHが適切に構成されていれば、ユーザーのSFTPアカウントの設定に進むことができます。
SFTPユーザーアカウントを作成する
次に、SFTPアクセスを許可するユーザーのユーザーアカウントを作成する必要があります。
-
sftp
という名前の新しいユーザーグループを作成します 。すべてのSFTPユーザーはこのグループに属する必要があります。
$ sudo addgroup sftp
- 次に、新しいユーザーを作成します。単に
sftpuser
と呼びます この例では、好きな名前を付けることができます。また、必ずこのユーザーをsftp
に追加してください 作成したグループ。$ sudo useradd -m sftpuser -g sftp
- 新しく作成した
sftpuser
のパスワードを設定します 。確認のために新しいパスワードを2回入力する必要があります。$ sudo passwd sftpuser
- 最後に、自分のホームディレクトリのユーザーにフルアクセスを許可しますが、システム上の他のすべてのユーザーのディレクトリへのアクセスを拒否します。
$ sudo chmod 700 /home/sftpuser/
SFTP構成が完了し、ログインしてすべてが正しく機能していることを確認できます。
コマンドラインを使用してSFTPにログインする
システムのホスト名またはIPアドレスを使用してSFTP経由でログインできます。 SFTPを構成したシステムと同じシステムからテストするには、ループバックアドレス127.0.0.1
に接続します。 正常に動作します。
- ターミナルを開き、
sftp
を使用してログインします コマンドとsftpuser
アカウント(またはあなたがあなたのために使用することに決めた名前)。このユーザーに対して前のセクションで構成したパスワードを入力する必要があります。$ sftp [email protected]
- ユーザーのホームディレクトリに移動します。これは、ユーザーのホームディレクトリが権限を持っている唯一の場所だからです。ここで、新しいディレクトリを作成して、すべてが意図したとおりに機能していることを確認してください。
sftp> cd sftpuser sftp> mkdir sftp-test sftp> ls sftp-test sftp>
GUIを使用してSFTPにログイン
GUIアプリケーションを使用してSFTPサーバーに接続する場合は、さまざまなオプションを利用できます。好みのSFTPクライアントまたはデフォルトでUbuntu22.04に組み込まれているクライアント(GNOMEのNautilusファイルマネージャー)を使用できます。
- [アプリケーション]メニューからNautilusファイルマネージャーを開きます。
- 「その他の場所」をクリックして、
sftp://127.0.0.1
と入力します。 ウィンドウの下部にある[サーバーに接続]ボックスで、[接続]をクリックします。 - 前に設定したSFTPアカウントのクレデンシャルを入力し、[接続]をクリックします。
- 接続が成功すると、ホームディレクトリを開いて、前に作成したテストディレクトリを確認できます。
まとめ
SFTPサーバーの記事では、SFTPサーバーを作成し、Ubuntu 22.04 JammyJellyfishLinuxでログインする方法を説明しました。また、コマンドラインとUbuntuGUIを使用してFTPサーバーに接続する方法についても説明しました。
この記事では、システムにSFTPを設定してFTPプロトコルを保護する方法を説明しました。このガイドの手順に従うことで、ローカルネットワーク上またはインターネット経由のコンピューターがシステムに安全にアクセスして、コマンドラインまたは優先SFTPクライアントを介してファイルを保存および取得できます。