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

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

SFTP(SSHファイル転送プロトコル)は、暗号化されたSSHトランスポートを介してファイルにアクセス、管理、および転送するために使用される安全なファイルプロトコルです。

従来のFTPプロトコルと比較すると、SFTPはFTPのすべての機能を提供しますが、より安全で構成が簡単です。

ファイル転送のみをサポートするSCPとは異なり、SFTPを使用すると、リモートファイルに対してさまざまな操作を実行し、ファイル転送を再開できます。

このチュートリアルでは、Linuxのsftpの使用方法を紹介します。 コマンド。

始める前に#

SFTP経由でファイルを転送できるようにするには、リモートシステムでの書き込み権限が必要です。

大きなファイルを転送する場合は、sftpを実行することをお勧めします スクリーンまたはtmuxsession内のコマンド。

sftpを実行するディレクトリ コマンドはローカルの作業ディレクトリです。

SFTPとFTPSを混同しないでください。どちらのプロトコルも同じ目的を果たします。ただし、FTPSはFTP Secureの略であり、TLSをサポートする標準のFTPプロトコルの拡張です。

SFTP接続の確立#

SFTPは、クライアントサーバーモデルで機能します。これはSSHのサブシステムであり、すべてのSSH認証メカニズムをサポートしています。

リモートシステムへのSFTP接続を開くには、sftpを使用します コマンドの後にリモートサーバーのユーザー名とIPアドレスまたはドメイン名を続けます:

sftp remote_username@server_ip_or_hostname

パスワード認証を使用してホストに接続している場合は、ユーザーパスワードの入力を求められます。

接続すると、sftpが表示されます プロンプトが表示され、リモートサーバーとの対話を開始できます:

Connected to remote_username@server_ip_or_hostname.
sftp>

リモートSSHサーバーがデフォルトのポート22でリッスンしていない場合は、-Pを使用します SFTPポートを指定するオプション:

sftp -P custom_port remote_username@server_ip_or_hostname

SFTPコマンド#

ほとんどのSFTPコマンドは、Linuxシェルコマンドと類似または同一です。

使用可能なすべてのSFTPコマンドのリストを取得するには、helpと入力します 、または?

help

これにより、各コマンドの簡単な説明を含む、使用可能なすべてのコマンドの長いリストが出力されます。

Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
...
...
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help

リモートサーバーにログインすると、現在の作業ディレクトリはリモートユーザーのホームディレクトリになります。次のように入力して確認できます:

pwd
Remote working directory: /home/remote_username

ファイルとディレクトリを一覧表示するには、lsを使用します コマンド:

ls

別のディレクトリに移動するには、cdを使用します 指図。たとえば、/tmpに切り替えるには 入力するディレクトリ:

cd /tmp

上記のコマンドは、リモートロケーションをナビゲートして操作するために使用されます。

SFTPシェルは、ローカルナビゲーション、情報、およびファイル管理のためのコマンドも提供します。ローカルコマンドの前には、文字lが付いています。 。

たとえば、ローカルの作業ディレクトリを印刷するには、次のように入力します。

cd lpwd
Local working directory: /home/local_username

SFTPを使用したファイルの転送#

SFTPを使用すると、2台のマシン間でファイルを安全に転送できます。

デスクトップマシンで作業している場合は、WinSCPorFileZillaなどのGUISFTPクライアントを使用してリモートサーバーに接続し、ファイルをダウンロードまたはアップロードできます。

sftp このコマンドは、GUIを使用せずにサーバーで作業していて、ファイルを転送したり、リモートファイルで他の操作を実行したりする場合に便利です。

SFTPコマンドを使用したファイルのダウンロード#

リモートサーバーから単一のファイルをダウンロードするには、getを使用します コマンド:

get filename.zip

出力は次のようになります。

Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip                           100%   24MB   1.8MB/s   00:13

sftpでファイルをダウンロードする場合 、ファイルは、sftpを入力したディレクトリにダウンロードされます。 コマンド。

ダウンロードしたファイルを別の名前で保存する場合は、2番目の引数として新しい名前を指定します。

get filename.zip local_filename.zip

リモートシステムからディレクトリをダウンロードするには、再帰的な-rを使用します オプション:

get -r remote_directory

ファイル転送が失敗または中断された場合は、regetを使用してファイル転送を再開できます。 コマンド。

regetの構文 getの構文と同じです :

reget filename.zip

SFTPコマンドを使用したファイルのアップロード#

ローカルマシンからリモートSFTPサーバーにファイルをアップロードするには、putを使用します コマンド:

put filename.zip

出力は次のようになります。

Uploading filename.zip to /home/remote_username/filename.zip
filename.zip                          100%   12MB   1.7MB/s   00:06

アップロードするファイルが現在の作業ディレクトリにない場合は、ファイルへの絶対パスを使用してください。

putを使用する場合 getで使用できるのと同じオプションを使用できます コマンド。

ローカルディレクトリをアップロードするには、次のように入力します。

put -r locale_directory

中断されたアップロードを再開するには:

reput filename.zip

SFTPを使用したファイル操作#

通常、リモートサーバーでタスクを実行するには、SSH経由でサーバーに接続し、シェルターミナルを使用して作業を行います。ただし、状況によっては、ユーザーがリモートサーバーにアクセスできるのはSFTPのみである場合があります。

SFTPを使用すると、いくつかの基本的なファイル操作コマンドを実行できます。以下は、SFTPシェルの使用方法の例です。

  • リモートシステムのディスク使用量に関する情報を取得します:

    df
            Size         Used        Avail       (root)    %Capacity
        20616252      1548776     18002580     19067476           7%
  • リモートサーバーに新しいディレクトリを作成します:

    mkdir directory_name
  • リモートサーバー上のファイルの名前を変更します:

    rename file_name new_file_name
  • リモートサーバー上のファイルを削除します:

    rm file_name
  • リモートサーバー上のディレクトリを削除します:

    rmdir directory_name
  • リモートシステム上のファイルの権限を変更します:

    chmod 644 file_name
  • リモートシステム上のファイルの所有者を変更します:

    chown user_id file_name

    chownにユーザーIDを指定する必要があります およびchgrp コマンド。

  • リモートファイルのグループ所有者を次のように変更します:

    chgrp group_id file_name

作業が終了したら、byeと入力して接続を閉じます またはquit

結論#

このチュートリアルでは、sftpの使用方法を説明しました。 リモートSFTPサーバーにファイルをダウンロードしてアップロードするコマンド。

SSHキーベースの認証を設定し、パスワードを入力せずにLinuxサーバーに接続することもできます。同じシステムに定期的に接続している場合は、SSH構成ファイルですべての接続を定義することでワークフローを簡素化できます。

ご不明な点やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Grepコマンドを使用してファイル内のテキストを検索する方法

  2. LinuxでSuコマンドを使用する方法

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

  1. SCP Linuxコマンド–リモートからローカルへのSSHファイル転送方法

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

  3. Linux で rpm2cpio コマンドを使用する方法

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

  2. Linux の find コマンドを使用してファイルを検索する方法

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