GNU/Linux >> Linux の 問題 >  >> Ubuntu

SFTPを使用してファイルを転送する方法

はじめに

SFTP(Safe File Transfer Protocol)は、リモートシステム間でファイルを安全に転送する方法としてSSHとともに含まれています。また、ユーザーは、ファイルやディレクトリの管理やファイルのアクセス許可の設定など、リモートサーバーで基本的な管理タスクを実行できます。

このチュートリアルでは、SFTPを使用して、ターミナルインターフェイスを使用してローカルシステムとリモートシステム間でファイルを転送する方法を示します。

前提条件

  • SSH公開鍵ペアを使用して接続されたローカルシステムとリモートサーバーへのアクセス。
  • インターネット接続が機能しています。
  • ターミナルウィンドウへのアクセス。

SFTPを使用して接続する方法

SFTPは、SSHネットワークプロトコルを使用してシステム間の安全な接続を確立します。これにより、公開SSHキーのコピーがある任意のシステムに接続できます。

SFTPを使用した別のシステムへの接続は、SSHを使用した接続と同じコマンド構文に従います。このコマンドでは、アクセスするシステムのユーザー名とリモートホスト名またはIPアドレスを指定する必要があります。

sftp [username]@[remote hostname or IP address]

以下の例では、IPアドレスが 192.168.100.5のシステムに接続しています。 フェニックスナップを使用する ユーザー名:

sftp [email protected]

現在の接続を終了するには、次を使用します:

exit

SFTPを使用してファイルを転送する方法

SFTPを使用すると、リモートサーバーからローカルシステムにファイルを転送したり、その逆を行ったりすることができます。

リモートファイルをローカルシステムに転送する

getを使用します SFTPインターフェースでコマンドを実行して、リモートサーバーからローカルシステムにファイルを転送します。

get [path to file]

たとえば、 example_document.txtというファイルを転送するには リモートシステムのホームから ローカルシステムへのディレクトリ、使用:

get example_document.txt

デフォルトでは、SFTPはファイルをローカルシステムのホームに転送します ディレクトリ。ファイルを別のディレクトリに転送するには、ディレクトリへのパスを getの最後に追加します コマンド:

get example_document.txt Downloads

ローカルシステムでファイル名を変更するには、 getの最後に新しいファイル名を追加します 指図。

get example_document.txt sample01.txt

上記の例では、 get コマンドはexample_document.txtをフェッチします ファイルを作成し、 sample01.txtとして保存します ローカルシステム上。

SFTPでは、 -rを使用して、リモートシステムからディレクトリ全体を転送することもできます。 フラグ、ディレクトリ内のすべてのファイルの再帰転送を示します:

get -r Example_Directory

-Pを追加します getへのフラグ 権限とアクセス時間を維持しながらファイルまたはディレクトリを転送するコマンド:

get -Pr Example_Directory

lsを使用します ローカルシステムへの転送を確認するコマンド:

ls -l

ローカルファイルをリモートサーバーに転送する

ローカルシステムからリモートサーバーにファイルを転送するには、 putを使用します 指図。 put コマンドは、 getと同じ構文とオプションを使用します コマンド。

put [path to file]

たとえば、 example01.txtを転送するには リモートサーバーにファイルを送信するには、次を使用します:

put example01.txt

ファイルをリモートサーバー上の特定のディレクトリに転送するには、ディレクトリへのパスを putの最後に追加します コマンド。

put example01.txt Example_Directory

putの最後に新しいファイル名を追加する コマンドは、リモートサーバー上で転送されたファイルの名前を変更します。

put example01.txt text_sample.txt

ディレクトリ全体を転送するには、 -rが必要です フラグ。

put -r Test_Directory

-Pを追加します putへのフラグ ファイルのアクセス許可を保持するコマンド:

put -Pr Test_Directory

lsを使用して、ファイル転送を確認します リモートシステムのコマンド:

SFTPを使用したファイルのメンテナンス

SFTPは基本的なファイルメンテナンスをサポートしています。たとえば、SFTPを使用して、リモートシステムのファイルとディレクトリのアクセス許可を変更します。

chown コマンドは、chmodコマンドと同様にファイルの所有権を変更します:

chown [user ID] [path to file]

chmodとは異なり コマンド、 chown ユーザーIDのみを受け入れ、ユーザー名は受け入れません。 SFTPインターフェースを使用してリモートサーバーのUIDを見つけるには、 / etc / passwdを転送してアクセスする必要があります。 ファイル:

get /etc/passwd
!less passwd

各ユーザーのUIDは、コロンで区切られた3番目の列にあります。

chmod コマンドは標準シェルと同じように機能します:

chmod [permission] [path to file]

もう1つのオプションは、 chgrpを使用してグループファイルの所有権を変更することです。 コマンド:

chgrp [group ID] [path to file]

UIDと同様に、グループIDは / etc / groupの3番目の列にあります。 リモートサーバー上のファイル:

get /etc/group
!less group

SFTPを使用すると、ローカルumaskを設定できます。これにより、ローカルシステムに転送されるファイルのデフォルトのファイル権限が変更されます。

例:

lumask 022

上記のコマンドは、ローカルのumaskを 022に変更します 。このumaskを設定した後に転送されたすべてのファイルには、 644が含まれるようになりました。 デフォルトで許可。 -pを使用すると、元の権限を引き続き保持できます。 フラグ。

ローカルファイルのアクセス許可を変更する別の方法は、SFTPを使用してシェルコマンドの動作を複製することです。これを行うには、感嘆符を追加します( )コマンド名の前。

たとえば、 chmodを使用します ローカルシステムでのコマンド:

!chmod [permission] [path to file]

Ubuntu
  1. 安全なファイル転送のためにSFTPコマンドを使用する方法

  2. Linux で FTP を使用してファイルを転送する方法

  3. Windows PC からリモート Linux サーバーに rsync を使用する方法は?

  1. SFTPプロトコルを使用してローカルマシンとリモートマシン間でファイルを転送する

  2. Nexus7を接続してファイルを転送する方法は??

  3. LinuxでNetcatを使用してファイルを転送する方法

  1. SCP と Rsync を使用して Linux でファイルを転送する方法

  2. Linux で SCP コマンドを使用してファイルを安全に転送する方法

  3. sftp を使用してファイルを安全に転送する方法 (例を含む)