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

Linux SCPコマンドの説明:ファイルを安全にコピーおよび転送する{13例}

はじめに

SCP (セキュアコピープロトコル) ネットワーク上のLinux(Unix)システム間でファイル/フォルダを安全にコピーするために使用されるネットワークプロトコルです。送信するには、 scpを使用します コマンドラインユーティリティ、cp(コピー)コマンドのより安全なバリアント。

SCPは、ファイルとパスワードを暗号化することにより、SSH(Secure Shell)接続を介してコピーするときにデータを保護します。したがって、トラフィックが傍受されても、情報は暗号化されたままです。

次の場合にSCPを使用します:

  • ローカルホストからリモートホストへのファイルのコピー。
  • リモートホストからローカルホストへのファイルのコピー。
  • 2台のリモートサーバー間でファイルをコピーします。

このガイドでは、 SCPコマンドを使用してファイルをコピーする方法を示し、実際に使用されているコマンドの13の例を示します

前提条件

  • サーバーでのセキュアシェルログイン
  • (オプション)クライアントとサーバーの両方でのルートアクセス
  • サーバーシステムでのセキュアシェルログイン

SCPコマンド構文

scpを使用するための構文 コマンドは次のとおりです:

scp [option] [[email protected]_host:path/to/source/file] [[email protected]_host:target/path] 

省略した場合:

  • user_name ホスト(またはターゲット)の場合、コマンドはデフォルトで現在のユーザーになります。
  • パス/宛先/ソース (またはターゲット/パス )コマンドから、プログラムはファイルをローカルで検索(またはコピー)します。

リモートファイルを操作するときは、常にユーザーとホストの仕様を指定してください。

ソースシステムにコピーするファイルへの読み取りアクセス権を持つアカウントを使用してください。さらに、ファイルが保存先のシステムに保存されるディレクトリへの書き込みアクセス権を持つアカウントを使用する必要があります。

SCPコマンドオプション

多くのscpを追加できます プロセスをカスタマイズおよび高速化するためのコマンドのコマンドオプション。オプションは、 scpの直後に属性として追加されます コマンド。

各オプションには、短い1文字の形式と、より長く説明的な同等の形式があります。

-1 プロトコル1を使用します。
-2 プロトコル2を使用します。
-4 Ipv4アドレスのみを使用してください。
-6 IPv6アドレスのみを使用してください。
-B バッチモードで実行し、ユーザー入力のすべてのクエリを無効にします。
-b buffer_size データ転送に使用するバッファサイズを指定します。指定しない場合は、デフォルトの32768バイトを使用します。
-C 圧縮を有効にします。
-c 暗号 データ暗号化用の暗号を選択します。指定しない場合、SCPはデフォルトの「AnyStdCipher」を使用します。
-D debug_level デバッグレベル(1、2、3、または99)を設定します。
-d 宛先ディレクトリがすでに存在する場合にのみ、ファイルをコピーします。
-F ファイル SSHの代替構成ファイルを指定します 。
-h コマンドオプションのリストを表示します。
-i ファイル 公開鍵認証のIDを読み取るファイルを指定します。
-l <​​/ code> 制限 帯域幅を制限します(制限をで指定します) Kbit / s)。
-o ssh_option オプションをssh_config形式でSSHに設定します。
-P ポート 接続するポートを指定します。指定しない場合、SCPはポート22を使用します。
-q SCPをクワイエットモードで実行します。
-Q ファイル転送統計の表示を無効にします。
-r 再帰的にコピーします。
-S プログラム 暗号化接続に指定されたプログラムを使用します。
-u コピーが完了したら、ソースファイルを削除します。
-v 詳細モードを有効にします。これにより、デバッグレベルが2に設定されます。

SCPコマンドの例

この便利なユーティリティをよりよく理解するには、次の scpをご覧ください。 コマンドの例。

ローカルサーバーからリモートサーバーにファイルをコピーする

以下の例では、サンプルファイルをローカルホストからリモートサーバーにコピーします。

scp Desktop/sample_example.txt [email protected]:/home/remote_dir 

このコマンドには、次の情報が含まれています。

  • Desktop / sample_example.txt -コピーするファイルの名前とその場所。
  • [メール保護] -リモートサーバーのユーザー名とIPアドレス。
  • / home / remote_dir –コピーしたファイルを保存する場所。

リモートサーバーからローカルホストにファイルをコピーする

サンプルファイルをリモートホストからローカルホストにコピーするには、次のコマンドを実行します。

scp 147.182.143.27:/home/remote_dir/sample_example.txt home/Desktop

提供される情報は

  • [メール保護] -ファイルが現在配置されているリモートサーバーのユーザー名とIPアドレス。
  • /home/remote_dir/sample_example.txt -コピーするファイルの名前とその場所。
  • ホーム/デスクトップ –コピーしたファイルを保存する場所。

あるリモートサーバーから別のリモートサーバーにファイルをコピーする

次に、 scp を使用して、あるリモートサーバーから別のリモートサーバーにファイルをコピーする方法を見てみましょう。 コマンド:

scp [email protected]:/home/remote_dir/sample_example.txt [email protected]:home/Desktop

上記のコマンドは以下を指定します:

  • [メール保護] -ファイルが現在配置されているリモートサーバーのユーザー名とIPアドレス。
  • /home/remote_dir/sample_example.txt -コピーするファイルの名前とその場所。
  • [メール保護] –ファイルをコピーするリモートサーバーのユーザー名とIPアドレス。
  • ホーム/デスクトップ –コピーしたファイルをリモートサーバーに保存する場所。

SCPを使用して複数のファイルをコピーする

SCPを使用すると、1つのコマンドで複数のファイルをコピーできます。たとえば、次のコマンドは、2つのファイルをローカルホストからリモートサーバーにコピーします。

scp example/sample1.txt example/sample2.txt [email protected]:/home/remote_dir

次の情報が含まれています:

  • example / sample1.txt –コピーされる最初のファイルの名前と場所。
  • example / sample2.txt –コピーされる2番目のファイルの名前と場所。
  • [メール保護] -ファイルを受信するリモートサーバーのユーザー名とIPアドレス。
  • / home / remote_dir -コピーしたファイルをリモートサーバーに保存する場所。

フォルダをローカルホストからリモートサーバーに再帰的にコピーする

ファイルとは別に、 scp リモートサーバーとの間でフォルダを安全にコピーすることもできます。次のコマンドは、サンプルディレクトリをリモートサーバーに再帰的にコピーする方法を示しています。

scp -r example [email protected]:/home/remote_dir

コマンドには次のものが含まれます:

  • -r –フォルダを再帰的にコピーするためのオプション。
  • –ローカルサーバーからコピーされるフォルダーの名前。
  • [メール保護] -フォルダを受信するリモートサーバーのユーザー名とIPアドレス。
  • / home / remote_dir -コピーしたフォルダをリモートサーバーに保存する場所。

特定のポートを使用してSCPでファイルをコピーする

デフォルトでは、SCPはポート22を使用します。ただし、リモートシステムが別のポートでSSH要求をリッスンするように構成されている場合は、 –Pを使用します。 切り替えてポートを指定します。

たとえば、次のコマンドは、ポート2222を使用して、ファイルをローカルサーバーからリモートサーバーにコピーします。

scp -P 2222  Desktop/sample_example.txt [email protected]:/home/remote_dir

上記のコマンドのコンポーネントは次のとおりです。

  • -P 2222 –ポート2222を使用します。
  • Desktop / sample_example.txt -コピーするファイル名とその場所。
  • [メール保護] -ファイルを受信するリモートサーバーのユーザー名とIPアドレス。
  • / home / remote_dir -コピーしたファイルをリモートサーバーに保存する場所。

静かなモードでSCPを使用してファイルをコピーする

scpの実行 クワイエットモードのコマンドは、プログレスメーターと非エラーメッセージが出力に表示されないようにすることを意味します。そのためには、 -qを追加する必要があります オプション:

scp -q Desktop/sample_example.txt [email protected]:/home/remote_dir

詳細モードでSCPを使用してファイルをコピーする

scpを実行できます -vを追加して冗長モードで デバッグレベルを2に設定するオプション。そうすると、トラブルシューティング時に役立つデバッグ情報が出力に出力されます。

-vを追加します scpの後のオプション 以下の例のように、冗長モードを有効にするには:

scp -v Desktop/sample_example.txt [email protected]:/home/remote_dir

SCPと制限帯域幅を使用してファイルをコピーする

もう1つの便利なオプションは、 scpで使用される帯域幅を制限することです。 -lを追加してコマンドを実行します パラメータ。これは、SCPが帯域幅を使い果たすのを防ぐために、大きなファイルをコピーするときに特に役立ちます。

帯域幅を制限する場合は、キロビット/秒で数値を指定する必要があります。 1バイト=8ビットであることに注意してください。したがって、SCPの帯域幅を100 KB / sに制限する場合、次のコマンドのように、kbps単位のlの値は800(100 x 8)になります。

scp -l 800 Desktop/sample_example.txt [email protected]:/home/remote_dir

SCPを使用してファイルをより速くコピーする

あるサーバーから別のサーバーへのファイル転送を高速化するには、 -Cを追加します 転送中にファイルを圧縮するオプション。ファイルが宛先に到達すると、通常のサイズに戻ります。

scp -C Desktop/sample_example.txt [email protected]:/home/remote_dir

特定の暗号を使用してSCPでファイルをコピーする

デフォルトでは、SCPはAES-128を使用してファイルを暗号化します。ただし、 -c オプションを使用すると、SCPがファイルの暗号化に使用する暗号を変更できます。

たとえば、セキュリティを強化するために、次の例のように3des暗号化に切り替えることができます。

scp -c 3des Desktop/sample_example.txt [email protected]:/home/remote_dir

IPv4またはIPv6を使用してSCPでファイルをコピーする

-4 を追加することで、必要に応じてSCPにIPv4またはIPv6のみを使用させることができます。 または-6 属性。

IPv6のみを使用してサンプルファイルをローカルサーバーからリモートホストにコピーするには、次のコマンドを実行します。

scp -6 Desktop/sample_example.txt [email protected]:/home/remote_dir

SCPがファイル属性を保持しているファイルをコピーする

SCPを使用してファイルをコピーし、変更やアクセス時間、モード、権限などのファイル属性を保持するには、 -pを使用します オプション:

scp -p Desktop/sample_example.txt [email protected]:/home/remote_dir

Linux
  1. Linuxでファイルとディレクトリをコピーする

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

  3. Linuxcpコマンド

  1. Linuxでファイルを安全に転送するための14のSCPコマンド例

  2. SCPとSFTPを使用してLinuxホスト間でファイルを安全にコピーする方法

  3. SCPを使用してファイルを安全に転送する方法

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

  2. LinuxでRsyncコマンドを使用するにはどうすればよいですか?

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