Linux
 Computer >> コンピューター >  >> システム >> Linux

LinuxでSFTPサーバーをセットアップする方法

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 
LinuxでSFTPサーバーをセットアップする方法

たとえば、aptを使用して、DebianおよびUbuntuシステムにOpenSSHサーバーをインストールできます。 コマンド:

 sudo apt install openssh-server 

pacmanを使用して、ArchLinuxでも同じことができます。 コマンド:

 sudo pacman -S openssh 
SFTP用のユーザー、グループ、およびディレクトリの作成

Linux上のさまざまなサービスで、独自のユーザー、グループ、およびディレクトリを使用することをお勧めします。

SFTPのユーザー用のグループを作成することから始めます。これは、groupaddを使用して実行されます コマンド:

 sudo groupadd sftp_group 

useraddを使用して、ユーザーを作成し、作成したグループに追加できます。 コマンドとその-g フラグ。ユーザーが参加するグループを指定するために使用されます。

 sudo useradd -g sftp_group sftp_user 

ユーザーを作成したら、passwdを使用してユーザーにパスワードを割り当てます。 コマンド:

 sudo passwd sftp_user 
LinuxでSFTPサーバーをセットアップする方法

新しく作成したユーザーのデフォルトディレクトリを作成します:

 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 
LinuxでSFTPサーバーをセットアップする方法

SSHサービスを再起動します:

 sudo systemtl restart sshd 

(オプション)SFTPポートの変更

SFTPサーバーが使用しているポートをデフォルト値の22から選択したオプションに変更する場合は、「sshd_config」ファイルをもう一度編集する必要があります。

Nanoエディターを使用してファイルをもう一度編集します:

 sudo nano / etc / ssh / sshd_config 

コメントアウトされたデフォルトのポート値22のファイル内の行を検索します。

 #Port 22 

行をコメントアウトするために使用されるハッシュ(#)記号を削除し、選択したポート値を追加できます。私の場合、値を1111に変更しています:

ポート1111

ファイルを保存するだけです

LinuxでSFTPサーバーをセットアップする方法

サーバーを再起動します:

 sudo systemctl restart sshd 
サーバーへのログインと使用

サーバーをインストールして構成すると、使用できるようになります。 SSHが提供する暗号化されたセッションを使用して、ファイルを簡単にアップロードおよびダウンロードできます。

ログインする前に、提供されているマニュアルを確認しても問題ありません。

 sftp -h 
LinuxでSFTPサーバーをセットアップする方法

次の形式でユーザー名とサーバーのIPまたはホスト名を入力して、サーバーにログインします。

 sftp USER @ HOST 

さらに、-Pを使用して、SFTPサーバーが使用しているポート(デフォルトは22)を指定できます。 フラグ:

 sftp USER @ HOST -P  

ログインすると、SFTPシェルが表示されます。

helpと入力してマニュアルを表示する 。

LinuxでSFTPサーバーをセットアップする方法 ファイルのダウンロード

ファイルをダウンロードするには:

 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 
LinuxでSFTPサーバーをセットアップする方法

この場合は「/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サーバーと同じポートを使用していないことを確認する必要があります。


  1. Linuxホームサーバーを保護する方法

    ホームサーバーを設定する理由はたくさんあります。メディアサーバー、ファイルサーバー、またはローカルバックアップサーバーとしても使用できます。基本的に、オンラインである必要のないファイルは、ホームサーバーの候補として適しています。 Linuxを搭載したホームサーバーのセットアップは、特に最近では比較的簡単です。そうは言っても、そのサーバーを安全に保つことはまったく別の話です。セキュリティは重要であると同時に、注意が必要な場合もあります。 絶対に必要なものだけをインストールする ホームサーバーを安全に保つ最も簡単な方法の1つは、最初からセキュリティを念頭に置くことです。これはインストールから始ま

  2. Discordサーバーをセットアップする方法

    Discordサーバーをセットアップしてから、友達や家族を招待することは、これからのホリデーシーズンに接続を維持するのに最適な方法です。このチュートリアルでは、アカウントを作成し、サーバーとクライアントを展開し、さまざまなチャネルを設定してから、サーバーにユーザーを招待してチャットやファイルの共有を行います。また、権限システムについても簡単に説明します。 Discordアカウントを作成する まず、www.discord.comにアクセスしてアカウントを作成します。サイトの右上にある[ログイン]ボタンを選択すると、ログインセクションのすぐ下に[登録]リンクがあります。これをクリックして、メール