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構成ファイルですべての接続を定義することでワークフローを簡素化できます。