
SCP(セキュアコピー)は、2つの場所間でファイルとディレクトリを安全にコピーできるようにするコマンドラインユーティリティです。
scp
を使用 、ファイルまたはディレクトリをコピーできます:
- ローカルシステムからリモートシステムへ。
- リモートシステムからローカルシステムへ。
- ローカルシステムからの2つのリモートシステム間。
scp
でデータを転送する場合 、ファイルとパスワードの両方が暗号化されているため、トラフィックをスヌーピングしている人は何も機密情報になりません。
このチュートリアルでは、scp
の使用方法を説明します。 最も一般的なscpオプションの実用的な例と詳細な説明を通してコマンドを実行します。
SCPコマンド構文#
scp
の使用方法に入る前に コマンド、基本的な構文を確認することから始めましょう。
scp
コマンド構文は次の形式を取ります:
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
OPTION
-暗号、ssh構成、sshポート、制限、再帰コピーなどのscpオプション…-
[user@]SRC_HOST:]file1
-ソースファイル。 -
[user@]DEST_HOST:]file2
-宛先ファイル
ローカルファイルは絶対パスまたは相対パスを使用して指定する必要がありますが、リモートファイル名にはユーザーとホストの指定を含める必要があります。
scp
その動作のあらゆる側面を制御するいくつかのオプションを提供します。最も広く使用されているオプションは次のとおりです。
-
-P
-リモートホストのsshポートを指定します。 -
-p
-ファイルの変更とアクセス時間を保持します。 -
-q
-進行状況メーターとエラー以外のメッセージを抑制したい場合は、このオプションを使用します。 -
-C
-このオプションはscp
を強制します データが宛先マシンに送信されるときにデータを圧縮します。 -
-r
-このオプションはscp
に通知します ディレクトリを再帰的にコピーします。
scp
コマンドはssh
に依存しています データ転送の場合、リモートシステムで認証するにはsshキーまたはパスワードが必要です。
コロン(:
)はscp
の方法です ローカルとリモートの場所を区別します。
ファイルをコピーできるようにするには、少なくともソースファイルの読み取り権限とターゲットシステムの書き込み権限が必要です。
両方のシステムで同じ名前と場所を共有するファイルをコピーする場合は注意してください。scp
警告なしにファイルを上書きします。
大きなファイルを転送する場合は、scp
を実行することをお勧めします スクリーンまたはtmuxsession内のコマンド。
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
を使用してリモートファイルをローカルシステムにコピーします コマンド#
リモートからローカルシステムにファイルをコピーするには、リモートの場所をソースとして使用し、ローカルの場所を宛先として使用します。
たとえば、file.txt
という名前のファイルをコピーします IP 10.10.0.2
のリモートサーバーから 次のコマンドを実行します:
scp [email protected]:/remote/file.txt /local/directory
リモートマシンにパスワードなしのSSHログインを設定していない場合は、ユーザーパスワードの入力を求められます。
scp
を使用して2つのリモートシステム間でファイルをコピーする コマンド#
rsync
とは異なり 、scp
を使用する場合 サーバー間でファイルを転送するためにサーバーの1つにログインする必要はありません。
次のコマンドは、ファイル/files/file.txt
をコピーします リモートホストhost1.com
から ディレクトリ/files
リモートホストhost2.com
。
scp [email protected]:/files/file.txt [email protected]:/files
両方のリモートアカウントのパスワードを入力するように求められます。データは、あるリモートホストから別のリモートホストに直接転送されます。
コマンドが発行されたマシンを介してトラフィックをルーティングするには、-3
を使用します オプション:
scp -3 [email protected]:/files/file.txt [email protected]:/files
結論#
このチュートリアルでは、scp
の使用方法を学びました。 ファイルとディレクトリをコピーするコマンド。
SSHキーベースの認証を設定し、パスワードを入力せずにLinuxサーバーに接続することもできます。
同じシステムに定期的に接続している場合は、SSH構成ファイルですべての接続を定義することでワークフローを簡素化できます。