LinuxでSFTPサーバーをセットアップする方法
ほとんどの人は、Linuxサーバーとの間でファイルを転送する必要がある場合、FileZilla、WinSCP、またはその他のFTPプログラムなどのユーティリティを好みます。 SFTPは、元のFTPプロトコルの安全な代替手段です。保護されていないバージョンとほぼ同じ機能を実行しますが、暗号化のレイヤーが追加されています。これを実現するために、暗号化機能を提供するSSHプロトコルを使用します。 LinuxシステムでSFTPサーバーをセットアップするには、複数の手順が必要です。ここで紹介します。
SFTPとは何ですか?
SFTP(Secure File Transfer Protocol)は、クライアントからサーバーにファイルを転送するためのネットワークプロトコルです。 FTP(ファイル転送プロトコル)とは異なり、SFTPはSSH(セキュアシェル)プロトコルを利用して送信されるデータを暗号化します。これは、1990年代にSSHプロトコルの開発も担当したコンピューター科学者のTatuYlönenとSamiLehtinenによって開発されました。ただし、最新バージョンはIETF(Internet Engineering Task Force)によって開発されています。
その名前がファイル転送操作のみを実行することを示唆しているとしても、それはリモートファイルシステムプロトコルとして説明することができます。クライアントから受信サーバーにSFTPを使用してファイルを送信する場合、データは宛先に送信される前に暗号化されます。送信されるデータが「中間者」によって傍受された場合、このサードパーティによって簡単に復号化することはできません。
SSHとOpenSSHサーバーのインストール
SSHとOpenSSHサーバーをインストールしてSFTPサーバーをセットアップするプロセスを開始しています。
ほとんどのLinuxインストールにはデフォルトでSSHがすでにインストールされていますが、システムにSSHがインストールされていない場合は、AdvancedPackagingToolのapt
を使用してインストールできます。 コマンド:
sudo apt install ssh
SSHをインストールした後、ssh
を実行してバージョンを確認できます。 -V
を使用したコマンド フラグ:
ssh -V
たとえば、apt
を使用して、DebianおよびUbuntuシステムにOpenSSHサーバーをインストールできます。 コマンド:
sudo apt install openssh-server
pacman
を使用して、ArchLinuxでも同じことができます。 コマンド:
sudo pacman -S openssh
Linux上のさまざまなサービスで、独自のユーザー、グループ、およびディレクトリを使用することをお勧めします。
SFTPのユーザー用のグループを作成することから始めます。これは、groupadd
を使用して実行されます コマンド:
sudo groupadd sftp_group
useradd
を使用して、ユーザーを作成し、作成したグループに追加できます。 コマンドとその-g
フラグ。ユーザーが参加するグループを指定するために使用されます。
sudo useradd -g sftp_group sftp_user
ユーザーを作成したら、passwd
を使用してユーザーにパスワードを割り当てます。 コマンド:
sudo passwd sftp_user
新しく作成したユーザーのデフォルトディレクトリを作成します:
sudo mkdir -p / data / sftp_user / uploaded_files
chown
を使用する ディレクトリに必要な権限を与えるコマンド:
sudo chown -R root:sftp_group / data / sftp_usersudo chown -R sftp_user:sftp_group / data / sftp_user / uploaded_files
SSHサーバーの構成
SFTPサーバーをセットアップするための次のステップは、使用するSSHサーバーを構成することです。
「/etc/ ssh /」にある「sshd_config」ファイルを編集して、ユーザーがサーバーに接続するときにSSHのシェルではなくSFTPシェルを使用するようにします。
デフォルトで多くのLinuxインストールにある一般的に使用されるNanoエディターを使用して、ファイルを簡単に編集できます。
sudo nano / etc / ssh / sshd_config
ファイルの下部を見つけて、以下を追加します:
Match Group sftp_groupChrootDirectory / data /%uForceCommand internal-sftp
SSHサービスを再起動します:
sudo systemtl restart sshd
(オプション)SFTPポートの変更
SFTPサーバーが使用しているポートをデフォルト値の22から選択したオプションに変更する場合は、「sshd_config」ファイルをもう一度編集する必要があります。
Nanoエディターを使用してファイルをもう一度編集します:
sudo nano / etc / ssh / sshd_config
コメントアウトされたデフォルトのポート値22のファイル内の行を検索します。
#Port 22
行をコメントアウトするために使用されるハッシュ(#)記号を削除し、選択したポート値を追加できます。私の場合、値を1111に変更しています:
ポート1111
ファイルを保存するだけです
サーバーを再起動します:
sudo systemctl restart sshd
サーバーをインストールして構成すると、使用できるようになります。 SSHが提供する暗号化されたセッションを使用して、ファイルを簡単にアップロードおよびダウンロードできます。
ログインする前に、提供されているマニュアルを確認しても問題ありません。
sftp -h
次の形式でユーザー名とサーバーのIPまたはホスト名を入力して、サーバーにログインします。
sftp USER @ HOST
さらに、-P
を使用して、SFTPサーバーが使用しているポート(デフォルトは22)を指定できます。 フラグ:
sftp USER @ HOST -P
ログインすると、SFTPシェルが表示されます。
help
と入力してマニュアルを表示する 。
ファイルをダウンロードするには:
get / path / to / file / on / server
例:
get / bin / ls
これにより、現在のディレクトリ(サーバーにログインする前にローカルにあったディレクトリ)にダウンロードされます。特定のローカルディレクトリにダウンロードするには:
get / path / to / file / on / server / path / to / local / folder
ディレクトリをコピーするには、-r
を追加する必要があります コマンドに対する再帰を表すパラメータ。
get -r / bin / home / username / Desktop / bin
この場合は「/home/ username / Desktop / bin」のように、ローカルで作成する新しいディレクトリの名前を追加することを忘れないでください。 get -r /bin /home/username/Desktop
を使用する場合 、ファイルはデスクトップに直接コピーされます。ディレクトリ自体ではなく、コピーされるファイルであることに注意してください。
ファイルまたはディレクトリのアップロードは同じ原則に従います。唯一の例外は、パスが逆になっていることです。つまり、最初にローカルファイル/ディレクトリを指定し、次にリモートパスを指定します。
まず、put
を使用してファイルをサーバーにアップロードします コマンド:
put / path / to / local / content / path / to / remote / location
ディレクトリをアップロードする場合(再帰的)、前のセクションと同じルールが適用されることに注意してください。実際には、ディレクトリ自体ではなく、ディレクトリ内のファイルがコピーされます。それらのファイルをコピーするディレクトリの新しい名前を指定します。
put -r / home / username / Desktop / bin bin
これにより、リモート側に「bin」という新しいディレクトリが作成されます。
転送を再開し、スペースを含むパスを使用する
中断された大きなファイルを転送する場合は、前のコマンドをreput
に置き換えることで再開できます。 およびreget
。送信元と宛先が完全に一致するように、前回使用したのと同じパスを使用していることを確認してください。
reget / path / to / file / on / server / path / to / local / filereput / path / to / local / file / path / to / file / on / server
ディレクトリ転送を再開するには、-r
を追加するだけです。 パラメータ:
reput -r / home / username / Desktop / bin bin
ファイルへのパスにスペースが含まれている場合は、引用符で囲みます:
put "/ home / username / My Documents / Files"
ls
を使用して、ファイルとディレクトリを一覧表示できます。 コマンド:
ls -l </ pre>ファイルの権限は、
chmod
を使用して変更することもできます コマンド:chmodさらに、mkdirコマンドを使用して新しいディレクトリを作成できます:
mkdirよくある質問 1。 SFTPクライアントをインストールする必要がありますか?
ほとんどの場合、いいえ。ほとんどのLinuxシステムには、ターミナルベースのSFTPクライアントがデフォルトでインストールされているためです。
2。公開鍵認証を使用できますか?
はい、認証方法としてパスワードの代わりに公開鍵認証を使用できます。設定は非常に簡単で、サーバーのセキュリティを強化します。
3。 SSHサーバーを同時にホストできますか?
はい。ただし、SFTPサーバーがSSHサーバーと同じポートを使用していないことを確認する必要があります。
-
Linuxホームサーバーを保護する方法
ホームサーバーを設定する理由はたくさんあります。メディアサーバー、ファイルサーバー、またはローカルバックアップサーバーとしても使用できます。基本的に、オンラインである必要のないファイルは、ホームサーバーの候補として適しています。 Linuxを搭載したホームサーバーのセットアップは、特に最近では比較的簡単です。そうは言っても、そのサーバーを安全に保つことはまったく別の話です。セキュリティは重要であると同時に、注意が必要な場合もあります。 絶対に必要なものだけをインストールする ホームサーバーを安全に保つ最も簡単な方法の1つは、最初からセキュリティを念頭に置くことです。これはインストールから始ま
-
Discordサーバーをセットアップする方法
Discordサーバーをセットアップしてから、友達や家族を招待することは、これからのホリデーシーズンに接続を維持するのに最適な方法です。このチュートリアルでは、アカウントを作成し、サーバーとクライアントを展開し、さまざまなチャネルを設定してから、サーバーにユーザーを招待してチャットやファイルの共有を行います。また、権限システムについても簡単に説明します。 Discordアカウントを作成する まず、www.discord.comにアクセスしてアカウントを作成します。サイトの右上にある[ログイン]ボタンを選択すると、ログインセクションのすぐ下に[登録]リンクがあります。これをクリックして、メール