ホームページ >システムチュートリアル >Linux >Linux で scp コマンドを使用して ssh 経由でファイルを安全に転送する方法

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

WBOY
WBOY転載
2024-02-09 13:39:30921ブラウズ

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

Unix または Linux オペレーティング システムでは、scp ユーティリティ (セキュア コピー) はより有名なコマンド cp に似ていますが、安全で暗号化されたネットワーク経由でホスト間でコピーするために使用されます。ネットワーク間でファイルとディレクトリを転送します。

データ転送に ssh に依存しているため、ssh と同じセキュリティが提供され、同じ認証が使用されます。 rcp とは異なり、scp コマンドでは、必要に応じて認証用のパスワードの入力を求められます。

この記事では、Linux での安全なファイル転送について詳しく説明し、scp コマンドの使用方法を学びます。一般的な scp スイッチとオプションの詳細な説明と使用例により、このユーティリティの使用方法を学習できます。

始める前に次のことを理解しておくことが重要です

  1. scp はデータ転送に ssh に依存しているため、リモート システム (Linux ファイル転送 ssh) での認証には ssh キーまたはパスワードが必要です。
  2. ターゲット システムに対する書き込み権限と、ソース ファイルに対する読み取り権限があることを確認します。
  3. 注: scp ツールは、リモートの場所とローカルの場所を区別するためにコロン (:) を使用します。
  4. 両面で同じ場所と名前のファイルをコピーすると、scp は事前の警告なしにファイルを上書きします。

SCP Linux コマンド構文

scp コマンドの使用を開始するには、次の形式の基本構文を理解する必要があります。 リーリー

オプション: SSH 構成、パスワード、制限、SSH ポート、再帰コピーなどの SCP オプションを表します。

[user@]SRC_HOST:]file1: ソースファイルを示します。

[user@]DEST_HOST:]file2: ターゲット ファイルを表します

他のコマンドと同様、scp ツールには動作を制御するためのオプションがいくつかあります。最も一般的なものは次のとおりです:

    -P: 接続先のリモート ホストの ssh ポートを示します。
  • -p: 元のファイルからのファイルの変更、モード、およびアクセス時間を保持するように指定します。
  • -q: エラー以外のメッセージと進行状況メーターを抑制する必要があります。
  • -C: 暗号化された安全な接続での圧縮を有効にするために -C フラグを ssh に渡すときに、scp にデータを強制的に圧縮させます。
  • -r: scp コマンドにディレクトリ全体を再帰的にコピーするように指示します。
  • -S: 接続の暗号化に使用されるプログラムの名前。 ssh が使用されるため、プログラムは ssh スイッチを理解する必要があります。
  • -v: 詳細モード。 scp と ssh が進行状況に関するメッセージを出力できるようにします。これは、接続、構成、認証の問題をデバッグするときに役立ちます。

ローカル ファイルをリモート宛先に転送します

scp の使用を開始する前に、cp を使用してファイルをあるフォルダーから別のフォルダーにコピーしてみましょう。これを実現するために cp コマンドを使用する方法は誰もが知っています:

リーリー

ユーザー linuxmi のホーム ディレクトリにあるファイル linuxmi.mp3 を、同じユーザーのホーム フォルダー (linuxmi のオーディオ ディレクトリ) にコピーします。

同様に、使用できる scp コマンドの例は次のとおりです。

リーリー

linuxmi をログイン名として使用し、linuxmi.mp3 ファイルをサーバー linuxmicom のリモート ディレクトリ /home/linuxmi/audio�� にアップロードします。アップロードを開始する前に、scp は linuxmi のリモート パスワードの入力を求めるプロンプトを表示することに注意してください。リモート ディレクトリが指定されていない場合、ファイルはリモート ユーザーのホーム ディレクトリにコピーされます。宛先フォルダーにファイル名を指定しない場合、scp は元の名前でファイルをコピーします。ファイルを別の名前で保存する場合は、新しいファイル名を指定する必要があります。

リモート ファイルをローカル ターゲットに転送する

ファイルをダウンロードするには、ソースの場所としてリモートの場所を指定できます。例えば ​​:###

scp linuxmi@linuxmi.com:/home/linuxmi/audio/* /home/linuxmi/downloads

linuxmi.com のリモート ディレクトリ /home/linuxmi/audio にあるすべてのオーディオ ファイルがローカル ディレクトリ /home/linuxmi/downloads にダウンロードされます。

ファイル名に注意してください:

ファイル名はユーザーとホストで構成され、そのホストとの間でのファイルの転送を示すことができます。 scp がホスト指定子として「:」を含むファイル名を処理しないようにするには、ローカル ファイル名を絶対または相対のいずれかにすることができます。ただし、リモート ファイル名にはユーザーとホストの両方を含める必要があります。

デフォルトのポート番号:

リモート ホスト上で SSH が別のポート (つまり、デフォルトのポート 22 以外のポート) でリッスンしている場合は、-P スイッチを使用してそのポートを示すことができます。

ローカル ディレクトリをリモート ターゲットに転送します

ファイルのコピーと同様に、ディレクトリをリモートの場所にコピーします。再帰転送には -r フラグを使用するだけです。

ディレクトリ全体をリモート システムにコピーするには、-r オプションを指定してコマンドを実行します。例:

scp -r /home/linuxmi/local_folder linuxmi@linuxmi.com:/home/linuxmi/remote_folder

2 つのリモート システム間のファイル転送

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

scp linuxmi@linuxmi.com:/folder/linuxmi.mp3 linuxmi@www.linuxmi.com:/anotherfolder

この操作を開始すると、両方のリモート ターゲットのパスワードを入力するように求められます。

トラフィックをローカル ホスト (つまり、コマンドが実行されるコンピューター) 経由でルーティングするには、次のように -3 スイッチを使用します。

scp -3 linuxmi@linuxmi.com:/folder/linuxmi.mp3 linuxmi@www.linuxmi.com:/anotherfolder

以上がLinux で scp コマンドを使用して ssh 経由でファイルを安全に転送する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。