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

Linux システムのサーバー間でいくつかのファイルを転送したいとしましょう.このタスクを実行するにはいくつかの方法があります. しかし、安全なファイル転送が優先される場合はどうでしょうか? いくつかのオプションが残されています。 最も簡単な解決策は、scp コマンドまたはセキュア コピーを使用して、セキュリティを気にせずにファイルを転送することです. この記事では、Linux システムで scp コマンドを使用してセキュアなファイル転送を使用する方法について説明します.

Linux で scp コマンドを使用してファイルを転送する (2023)

Linux の scp コマンドとは何ですか?

安全なネットワークを介してファイルを転送する場合、scp コマンドが非常に便利です。 セキュア コピー プロトコルの略です。 SSH (Secure Shell) 接続を介して 2 つのシステム間でファイルとディレクトリを転送します. ssh を使用すると、ファイルのセキュリティを確保できます. これらはデフォルトで暗号化されているため、scp コマンドは cp コマンドのより安全なバージョンです。これについては、Linux ターミナル コマンドの記事を参照してください。

scp コマンドの使用方法: 構文とオプション

scp 経由でファイルを転送する前に、ここでコマンドの構文とオプションを見てみましょう。

scp <option> <[email protected]_ip_address:path/to/source/file> <[email protected]_ip_address:target/path>

文法を理解する:

  • 最初の1つ、 <[email protected]_ip_address:path/to/source/file> ファイル/ディレクトリの転送元となる「ソース」システムを指定します。
  • 2番、 <[email protected]_ip_address:target/path> ファイル/ディレクトリを転送する「ターゲット」システムを指定します。

上記のパラメーターのいずれかをオフのままにしておくと、Linux の scp コマンドは最初にファイルを検索してからローカルにコピーします。 コマンドと組み合わせるオプションのいくつかは次のとおりです。

選択 行き先
-P ホスト システムに接続するポートを指定します。指定しない場合、デフォルトでポート 22 が使用されます。
-p ターゲット システムにコピーするときに、ソース ファイルの変更時刻、アクセス時刻、およびモードを保持します。
-r ディレクトリ全体をターゲット システムに再帰的にコピーしました。
-J プロキシ システム (ジャンプ ホスト) を介してソース システムと宛先システムを接続するために使用されます。
-3 このフラグを使用する場合ターゲット システムとローカル システムの両方にファイルをコピーします。
-4 scp コマンドが IPv4 アドレスのみを使用するように強制します。
-6 scp コマンドが IPv6 アドレスのみを使用するように強制します。

scp コマンドを使用してファイルをコピーする方法

Linux で scp コマンドを使用する前に、ホストとターゲット システムの両方で満たす必要のある前提条件がいくつかあります。

  • sshをインストールする必要があります
  • root アクセスまたは sudo 権限を持つユーザー。

ファイルをローカル ホストからリモート ターゲットにコピーします。

ローカル システムからリモート ターゲットに転送するファイルがある場合次の構文を使用する必要があります。

scp <options> <path_to_local_file> <remote_user>@<remote_target_ip_address>:<path_to_store_in_remote_destination>

上記の構文が複雑に思われる場合は、 例はそれを明確にするでしょう:

scp test.txt [email protected]:/home/remote2/Documents/

上記の例では:

  • test.txt 転送するファイルの名前で、ローカル システムの現在のディレクトリにあります。
  • test ターゲット システムのユーザー名です。
  • 139.144.11.105 ターゲット システムの IP アドレスです。
  • /home/remote2/Documents/ 転送されたファイルが保存されるターゲット システム上の場所です。
ローカルシステムからリモートにファイルを転送する - scp コマンド linux

リモート ホストからローカル ターゲットにファイルをコピーします。

リモート ホストからローカル マシンにファイルを転送する場合。 Linux システムで次の scp コマンド構文を使用します。

scp <options> <remote_user>@<remote_host_ip_address>:<path_of_file_to_transfer> <path_to_store_file>

たとえば、作業中のリモート サーバーから test.py というファイルを転送するとします。 次のコマンドを使用します。

scp [email protected]:/home/test/test1.py ~/test1.py

この例では:

  • test リモートホストのユーザー名です。
  • 10.10.11.113 リモート ホストの IP アドレスです。
  • /home/test/test1.py リモートホストから転送されるファイルのパスです。
  • ~/test1.py ローカル マシンに転送され、ホーム ディレクトリに格納された後のファイルの名前です。
リモートサーバーからローカルシステムにファイルを送信 - scp linux コマンド

あるリモート ホストから別のリモート ターゲットにファイルを転送します。

scp コマンドを使用すると、ローカル システムとリモート マシンの間でファイルを転送できるだけではありません。 2 つのリモート システム間でファイルを転送します。ただし、あるリモート システムから別のリモート システムにファイルを転送する前にソース システムで秘密 ssh キーと公開 ssh キーを作成することをお勧めします。 宛先システムに公開鍵のコピーを保存します。

一般に、ユーザーはエラーについて不平を言います。 2 つのリモート システム間でファイルを転送するときに「ホスト キーの検証に失敗しました」 エラーをスキップするには、追加の手段として ssh キーを使用します。 ここでそれを行う方法を説明しました:

1. 次のコマンドを使用して、ソース サーバーで公開/秘密キーのペアを生成します。

ssh-keygen -t <encryption_algorithm>

2. 暗号化アルゴリズムには、「rsaこれは、最も頻繁に使用されるアルゴリズム、または選択した他のアルゴリズムです。

3. 次に、ssh キーを保存する場所を選択するよう求められます. 選択した任意の場所またはデフォルトの場所に保存できます.

4. パスフレーズについて必要なものを入力することも、Enter キーを押して空白のままにすることもできます。

ssh キーを生成し、コピーを受信側システムに送信します。

5.次に、以下のコマンドを使用して公開鍵を宛先サーバーにコピーします.これにより、sshを使用してパスワードなしで宛先にログインすることもできます.

ssh-copy-id <destination_username>@<destination_ip_address>

記録注: パスワードなしのログイン方法は、ssh キーを作成したユーザーに対してのみ機能します。

6. ssh キーを作成してリモート サーバーに保存したら、. Linux を実行している 2 つのリモート システム間でファイルを交換するには、次の scp コマンド構文を使用します。

scp <options> <remote_user_1>@<remote_host_ip_address>:<path_of_file_to_transfer> <remote_user_2>@<remote_target_ip_address>:<path_to_store_in_remote_destination>

2 つのリモート システム間のファイル転送 - scp linux コマンド

test.txt というファイルをあるリモート ホストから別のリモート レシーバに転送するとします。 次のコマンドを使用します。

scp [email protected]:/home/test1/test.txt [email protected]:/home/remote2/Documents/test1.txt

この例では:

  • remote1 リモート送信側ホストのユーザーの名前です。
  • 10.10.11.113 リモート送信側ホストの IP アドレスです。
  • /home/test1/test.txt 送信するファイルへのパスです。
  • remote2 ターゲットのリモート受信者のユーザー名です。
  • 10.11.27.111 リモート受信ターゲットの IP アドレスです。
  • /home/remote2/Documents/test1.txt 受信するファイル用に保存する名前とパスです。

scp コマンドを使用して複数のファイルを転送します。

複数のファイルを 1 つずつ転送するのは、誰にとっても面倒な作業です。 以下の構文を使用して、Linux で scp コマンドを使用してファイルを交換できます。

scp <path_to_file_1> <path_to_file_2> <remote_receiver>@<remote_target_ip_address>:<path_to_store_in_remote_destination>

たとえば、test1.txt、test2.py、test3.sh、および test4.c の 4 つのファイルをリモート レシーバーに送信するとします。 以下のコマンドを使用できます。

scp -P 22 test1.txt test2.py test3.sh test4.c [email protected]:/home/remote_1/Documents

例のコマンドがどのように機能し、どのように機能するかを理解しましょう。

  • -p 2222 ポート 22 を介して接続するために使用されます。
  • test1.txt test2.py test3.sh test4.c 転送するファイルの名前です。
  • remote_1 受信側システムのユーザー名です。
  • 10.10.11.113 受信者の IP アドレスです。
  • /home/remote_1/Documents 受信したファイルを格納するパスを参照します。
scp コマンドを使用して複数のファイルを転送します。

以下に示すように、ワイルドカードを使用して、同じ拡張子を持つ複数のファイルを送信できます。

scp <wildcard>.<extension> <remote_receiver>@<remote_target_ip_address>:<path_to_store_in_remote_destination>

たとえば、 すべての .py ファイルをリモート サーバーに送信します。Linux ターミナルで以下の scp コマンドを使用します。

scp *.py [email protected]:/home/remote_1/

ここ、

  • *.py すべてのpythonファイルを意味します
  • remote1 受信者のユーザー名です。
  • 10.10.11.113 受信者の IP アドレスです。
  • /home/remote_1/ 受信したファイルが保存される場所です。
拡張子が同じファイルを複数選択して転送する。

よくある質問

SCP ファイル転送は安全ですか?

セキュア コピー プロトコルまたは scp は、SSH テクノロジに基づくプロトコルであり、暗号化と認証を使用して 2 つのホスト間でファイルを交換します。 これにより、2 つのホスト間の完全なデータ セキュリティと整合性が確保されます。

SCP は SFTP より安全ですか?

SCP プロトコルと SFTP プロトコルはどちらも、セキュリティの点で同じレベルにあります。 SFTP で scp を使用する主な利点は、転送速度が速いことです。 これは、待ち時間の長いネットワークで特に役立ちます。

Linux で scp コマンドを使用して安全にファイルを転送します。

ある時点ですべてのユーザーは、ネットワークを介していくつかのファイルを交換する必要があります.scp コマンドを使用すると、待ち時間の長いネットワークでも安全かつ効率的にファイルを簡単に転送できます。 それも便利です。 また、Linux でファイルの名前を変更する方法と Linux でファイルを削除する方法に関するガイドをチェックして、オペレーティング システムでのファイル管理スキルを向上させることもできます。 この記事が、scp コマンドを使用して Linux コンピューターでファイルを転送する方法を学ぶのに役立つことを願っています. コマンドの使用中に問題が発生した場合は、コメント セクションでお知らせください.

Sharing is caring!

Facebook Comments

Leave a Reply