はじめに
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