ウェブサイト検索

Ubuntu 20.04 Focal Fossa LinuxにSFTPサーバーを設定する方法


このガイドでは、Ubuntu 20.04 Focal Fossa上でVSFTPDを使用してSFTPサーバーを設定する方法を示します。まだの方は、VSFTPDを使用してUbuntu 20.04 Focal FossaにFTPサーバーを設定する方法に関するチュートリアルをご覧ください。本記事はSFTPについてのものであり、FTPガイドで説明された設定が適用されていることを前提としています。

FTPはファイルにアクセスし転送するのに優れたプロトコルですが、クリアテキストプロトコルであるという短所があります。言い換えれば、インターネット接続上で使用するのは安全ではなく、あなたの認証情報やデータが暗号化されずに送信されるからです。SFTPの「S」は「Secure(安全)」の略で、FTPプロトコルをSSHを通してトンネリングし、安全な接続を確立するために必要な暗号化を提供します。

このチュートリアルでは、あなたは学びます:

  • SSHデーモンのインストールと設定方法
  • SFTPユーザーアカウントとグループの設定方法
  • コマンドラインを介してSFTPサーバーに接続する方法
  • コマンドラインを介してSFTPサーバーに接続する方法

Ubuntu 20.04 Focal Fossa LinuxにSFTPサーバーを設定する方法

SSHデーモンを設定する

  1. SFTPはSSHを必要とするので、システムにSSHサーバーがまだインストールされていない場合は、次のコマンドでインストールしてください:

    sudo apt install ssh
    
  2. SSHがインストールされたら、SSHDの設定ファイルにいくつかの変更を加える必要があります。nanoやお気に入りのテキストエディタを使って開いてください:

    sudo nano /etc/ssh/sshd_config
    
  3. ファイルの一番下までスクロールし、次の5行を最後に追加してください:

    Match group sftp
    ChrootDirectory /home
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

    SSH構成ファイル

  4. 上記の行により、sftp グループのユーザーは SFTP を介してホームディレクトリにアクセスできますが、通常の SSH アクセスは拒否されるため、シェルにアクセスすることはできません。これらの行を貼り付けた後、設定ファイルを保存して閉じてください。

  5. これらの新しい変更を適用するためにSSHサービスを再起動してください:

    sudo systemctl restart ssh
    

SFTPユーザーアカウントを作成する

今、私たちはSFTPアクセスを付与したい人のためにユーザーアカウントを作成する必要があります。

  1. sftpという新しいユーザーグループを作成します。すべてのSFTPユーザーはこのグループに所属する必要があります。

    sudo addgroup sftp
    Adding group `sftp' (GID 1002) ...
    Done.
    
  2. 次に、新しいユーザーを作成します。この例では、私たちのユーザーをと呼びます。また、このユーザーをグループに追加することも忘れないでください。

    sudo useradd -m sftpuser -g sftp
    
  3. 新しく作成した sftpuser のパスワードを設定してください。

    sudo passwd sftpuser
    New password: 
    Retype new password: 
    passwd: password updated successfully
    
  4. 最後に、ユーザー自分のホームディレクトリへの完全なアクセスを許可しますが、システム上の他のユーザーにはそのディレクトリへのアクセスを拒否します:

    sudo chmod 700 /home/sftpuser/
    

私たちのSFTP構成は完了しました。これで、すべてが正常に動作しているか確認するためにログインできます。

コマンドラインを使用してSFTPにログインする

あなたのシステムのホスト名またはIPアドレスを使用してSFTPでログインできます。SFTPを設定したのと同じシステムからテストするには、ループバックアドレス127.0.0.1に接続すれば問題ありません。

  1. ターミナルを開き、sftpコマンドを使用してログインします:

    sftp sftpuser@127.0.0.1
    The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
    ECDSA key fingerprint is SHA256:9HZflwSB64J+SELGLczOuv3f06gT/3ZaZAOezVZn2XQ.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
    sftpuser@127.0.0.1's password: 
    Connected to 127.0.0.1.
    sftp>
  2. ユーザーのホームディレクトリに移動します。そこが唯一権限がある場所です。ここで、新しいディレクトリを作成して、すべてが意図した通りに機能していることを確認してみてください:

    sftp> cd sftpuser
    sftp> mkdir sftp-test
    sftp> ls
    sftp-test          
    sftp>

GUIを使用してSFTPにログインする

SFTPサーバーに接続するためにGUIアプリケーションを使用したい場合、選択肢はたくさんあります。お好みのSFTPクライアントや、デフォルトでUbuntuに組み込まれているNautilusファイルマネージャーを使用することができます。

  1. アプリケーションメニューから Nautilus ファイルマネージャーを開きます。
  2. 「その他の場所」をクリックし、ウィンドウの下部にある「サーバーに接続」ボックスにsftp://127.0.0.1を入力して接続をクリックしてください。
  3. NautilusでSFTPサーバーに接続する

  4. 以前に設定したSFTPアカウントの資格情報を入力し、接続をクリックしてください。
  5. 接続するためにSFTPアカウントの資格情報を入力してください。

  6. 接続に成功すると、ホームディレクトリを開いて、以前に作成したテストディレクトリを見ることができるようになります。
  7. SFTPサーバーへの接続に成功しました

結論

FTPサーバーの記事では、VSFTPDを使用してUbuntu 20.04 Focal FossaにFTPサーバーを作成する方法を見ました。また、コマンドラインとUbuntu GUIを使用してFTPサーバーに接続する方法についても説明しました。

この記事では、システムにSFTPを設定することによってFTPプロトコルをどのように安全にするかを見ました。このガイドの手順に従うことで、ローカルネットワーク上やインターネット経由で、コンピュータがコマンドラインまたは好みのSFTPクライアントを使用して安全にファイルを保存および取得できるようになります。

関連記事: