アンドロイド

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

Unicode in Python

Unicode in Python

目次:

Anonim

SCP(セキュアコピー)は、2つの場所間でファイルとディレクトリを安全にコピーできるコマンドラインユーティリティです。

scp を使用すると、ファイルまたはディレクトリをコピーできます。

  • ローカルシステムからリモートシステムへ。リモートシステムからローカルシステムへ。ローカルシステムから2つのリモートシステム間。

scp 使用してデータを転送する場合、ファイルとパスワードの両方が暗号化されるため、トラフィックを覗き見する人が機密情報を取得することはありません。

このチュートリアルでは、最も一般的なscpオプションの実用的な例と詳細な説明を通して scp コマンドの使用方法を示します。

SCPコマンドの構文

scp コマンドの使用方法に入る前に、基本的な構文を確認することから始めましょう。

scp コマンドの構文は次の形式を取ります。

scp SRC_HOST:]file1 DEST_HOST:]file2

  • OPTION -暗号、ssh設定、sshポート、制限、再帰的コピーなどのscpオプション… SRC_HOST:]file1 ソースファイル。 DEST_HOST:]file2 宛先ファイル

ローカルファイルは絶対パスまたは相対パスを使用して指定し、リモートファイル名にはユーザーとホストの指定を含める必要があります。

scp は、その動作のあらゆる側面を制御する多くのオプションを提供します。 最も広く使用されているオプションは次のとおりです。

  • -P リモートホストのsshポートを指定します。 -p ファイルの変更とアクセス時間を保持します。 -q 進行状況メーターとエラー以外のメッセージを抑制する場合は、このオプションを使用します。 -C このオプションは、宛先マシンに送信されるデータを強制的に圧縮します。 -r このオプションは、ディレクトリを再帰的にコピーするように scp に指示します。

あなたが始める前に

scp コマンドはデータ転送を ssh に依存しているため、リモートシステムで認証するにはsshキーまたはパスワードが必要です。

コロン(:)は、 scp がローカルロケーションとリモートロケーションを区別する方法です。

ファイルをコピーできるようにするには、少なくともソースファイルの読み取り権限とターゲットシステムの書き込み権限が必要です。

両方のシステムで同じ名前と場所を共有するファイルをコピーするときは注意してください scp は警告なしにファイルを上書きします。

大きなファイルを転送する場合、画面またはtmuxセッション内で scp コマンドを実行することをお勧めします。

scp 2つのシステム間でファイルとディレクトリをコピーする

scp コマンドを使用してローカルファイルをリモートシステムにコピーする

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

scp file.txt [email protected]:/remote/directory

ここで、 file.txt はコピーするファイルの名前、 remote_username はリモートサーバー上のユーザー、 10.10.0.2 はサーバーのIPアドレスです。 /remote/directory は、ファイルのコピー先のディレクトリへのパスです。 リモートディレクトリを指定しない場合、ファイルはリモートユーザーのホームディレクトリにコピーされます。

ユーザーパスワードの入力を求められ、転送プロセスが開始されます。

[email protected]'s password: file.txt 100% 0 0.0KB/s 00:00

宛先の場所からファイル名を省略すると、元の名前でファイルがコピーされます。 別の名前でファイルを保存する場合は、新しいファイル名を指定する必要があります。

scp file.txt [email protected]:/remote/directory/newfilename.txt

リモートホスト上のSSHがデフォルトの22以外のポートでリッスンしている場合、 -P 引数を使用してポートを指定できます。

scp -P 2322 file.txt [email protected]:/remote/directory

ディレクトリをコピーするコマンドは、ファイルをコピーするときとほとんど同じです。 唯一の違いは、再帰に -r フラグを使用する必要があることです。

ディレクトリをローカルシステムからリモートシステムにコピーするには、 -r オプションを使用します。

scp -r /local/directory [email protected]:/remote/directory

scp ommandを使用してリモートシステムをローカルシステムにコピーする

リモートからローカルシステムにファイルをコピーするには、リモートロケーションをソースとして使用し、ローカルロケーションを宛先として使用します。

たとえば、file 10.10.0.2 という名前のファイルをIP 10.10.0.2 リモートサーバーからコピーするには、次のコマンドを実行します。

scp [email protected]:/remote/file.txt /local/directory

scp コマンドを使用して2つのリモートシステム間でファイルをコピーする

rsync とは異なり、 scp を使用する場合、サーバーの1つにログインしてファイルを別のリモートマシンに転送する必要はありません。

次のコマンドは、ファイル /files/file.txt をリモートホスト host1.com からリモートホスト host1.com のディレクトリ /files にコピーします。

scp [email protected]:/files/file.txt [email protected]:/files

両方のリモートアカウントのパスワードを入力するように求められます。 データは、あるリモートホストから別のリモートホストに直接転送されます。

コマンドが発行されたマシンを介してトラフィックをルーティングするには、 -3 オプションを使用します。

scp -3 [email protected]:/files/file.txt [email protected]:/files

結論

このチュートリアルでは、 scp コマンドを使用してファイルとディレクトリをコピーする方法を学びました。

SSHキーベースの認証を設定し、パスワードを入力せずにLinuxサーバーに接続することもできます。

scp端末