SFTPは「SSHファイル転送プロトコル」の略です。 SFTPは、2台のサーバー間でファイルを転送するために使用されるファイル転送プロトコルです。デフォルトでは、SFTPを使用すると、SSHアクセスが有効になっているすべてのサーバーでファイルを転送できます。ただし、すべてのユーザーに端末アクセスを許可するため、セキュリティ上の理由からお勧めしません。
このチュートリアルでは、シェルアクセスなしでSFTPユーザーを作成して、ユーザーがSSHアクセスではなくSFTPアクセスのみを持つようにする方法を学習します。
前提条件
- Atlantic.netクラウドプラットフォーム上の新しいCentOS8VPS。
- サーバーで構成されているrootパスワード。
ステップ1-Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。 1GB以上のRAMを搭載したオペレーティングシステムとしてCentOS8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
CentOS 8サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
dnf update -y
ステップ2–SFTPユーザーを作成する
まず、ファイル転送アクセスのみを持つ新しいユーザーを作成する必要があります。次のコマンドを使用して、sftpという名前の新しいユーザーを作成できます。
adduser sftp
次に、上記のユーザーのパスワードを設定します。
passwd sftp
希望のパスワードを入力してEnterキーを押します。
ステップ3–ファイル転送用のディレクトリ構造を作成する
次に、ファイル転送用のディレクトリ構造を作成して、SFTPアクセスを1つのディレクトリに制限する必要があります。
次のコマンドを使用して、新しいディレクトリを作成できます。
mkdir -p /opt/sftp/public
次に、/ opt /sftp/ディレクトリの所有権をrootに設定します。
chown root:root /opt/sftp
次に、次のコマンドを使用して適切な権限を付与します。
chmod 755 /opt/sftp
次に、パブリックディレクトリの所有権をsftpユーザーに設定します。
chown sftp:sftp /opt/sftp/public
ステップ4–SFTP用にSSHを構成する
次に、SSHを構成して、1つのディレクトリへのアクセスを制限し、sftpユーザーへのターミナルアクセスを禁止する必要があります。
ファイル/etc/ ssh / sshd_configを編集することでそれを行うことができます:
nano /etc/ssh/sshd_config
ファイルの最後に次の行を追加します。
Match User sftp ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /opt/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
終了したら、ファイルを保存して閉じます。次に、SSHサービスを再起動して、変更を実装します。
systemctl restart sshd
ステップ5–SFTPを確認する
次に、次のコマンドを使用してSFTPアクセスを確認します。
sftp [email protected]
以下に示すように、パスワードの入力を求められます。
[email protected]'s password:
sftpユーザーパスワードを入力し、Enterキーを押します。接続すると、次の出力が表示されます。
Connected to your-server-ip. sftp>
次に、次のコマンドを実行してディレクトリを一覧表示します。
sftp> ls
次の出力にパブリックディレクトリが表示されます。
public sftp>
次に、SSH接続を確立できるかどうかを確認します。
ssh [email protected]
以下に示すように、パスワードの入力を求められます。
[email protected]'s password:
sftpユーザーパスワードを入力し、Enterキーを押します。次の出力が表示されます。
This service allows sftp connections only. Connection to your-server-ip closed.
上記の出力は、sftpユーザーがSSH経由でサーバーシェルにアクセスできなくなったことを示しています。
結論
おめでとう! CentOS 8でシェルアクセスなしでSFTPを正常に構成しました。このセットアップは、複数のユーザーとディレクトリに使用することもできます。 Atlantic.NetのVPSでSFTPを今すぐ始めましょう!