GNU/Linux >> Linux の 問題 >  >> Linux

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

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


Linux
  1. Linuxでファイルを安全に転送するための14のSCPコマンド例

  2. 安全なファイル転送のためにSFTPコマンドを使用する方法

  3. SCPを使用してファイルを安全に転送する方法

  1. SCP Linuxコマンド–リモートからローカルへのSSHファイル転送方法

  2. LinuxでNetcatを使用してファイルを転送する方法

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

  1. Linuxでmd5sumコマンドを使用する方法

  2. Linuxでtouchコマンドを使用する方法

  3. Linux SCPコマンドの説明:ファイルを安全にコピーおよび転送する{13例}