SCP (セキュアコピー)は、LinuxおよびUnixライクなシステムのコマンドラインツールであり、ネットワークを介してシステム間でファイルやディレクトリを安全に転送するために使用されます。 scpコマンドを使用してファイルとディレクトリをローカルシステムからリモートシステムにコピーすると、バックエンドでssh接続が作成されます。 リモートシステムに。つまり、scpは同じSSHセキュリティメカニズムを使用していると言えます。 バックエンドでは、認証用にパスワードまたはキーのいずれかが必要です。
このチュートリアルでは、Linuxでのscpコマンドと実際の例について説明します。
scpコマンドの構文:
#scp
#scp
scpコマンドの最初の構文は、ファイルまたはディレクトリをローカルシステムから特定のフォルダの下のターゲットホストにコピーする方法を示しています。
scpコマンドの2番目の構文は、ターゲットホストからのファイルがローカルシステムにコピーされる方法を示しています。
scpコマンドで最も広く使用されているオプションのいくつかを以下に示します。
- -C圧縮を有効にする
- -iIDファイルまたは秘密鍵
- -lコピー中の帯域幅を制限します
- -Pターゲットホストのsshポート番号
- -pコピー中のファイルの権限、モード、アクセス時間を保持します
- -qSSHの警告メッセージを抑制します
- -rファイルとディレクトリを再帰的にコピーする
- -v詳細な出力
今すぐ例に飛び込みましょう!!!!
例1)scpを使用してローカルシステムからリモートシステムにファイルをコピーします
scpコマンドを使用してローカルLinuxシステムからリモートシステム(172.20.10.8)にjdk rpmパッケージをコピーするとします。次のコマンドを使用します、
[[email protected]〜] $ scp jdk-linux-x64_bin.rpm [email protected]:/ opt [email protected]'s password:jdk-linux-x64_bin.rpm 100%10MB 27.1MB / s 00: 00 [[メール保護]〜] $
上記のコマンドは、jdkrpmパッケージファイルを/optフォルダーの下のリモートシステムにコピーします。
例2)scpを使用してリモートシステムからローカルシステムにファイルをコピーします
リモートシステムから/tmpフォルダの下のローカルシステムにファイルをコピーしたいとします。次のscpコマンドを実行します。
[[email protected]〜] $ scp [email protected]:/ root / Technical-Doc-RHS.odt / tmp [email protected]'s password:Technical-Doc-RHS.odt 100%1109KB 31.8MB / s 00:00 [[メール保護]〜] $ ls-l/tmp/Technical-Doc-RHS.odt-rwx------。 1 pkumar pkumar 113552110月19日11:12/tmp/Technical-Doc-RHS.odt[[メール保護]〜] $
例3)scp(-v)を使用してファイルを転送する際の詳細な出力
scpコマンドでは、-vオプションを使用して詳細出力を有効にできます。詳細出力を使用すると、バックグラウンドで正確に何が起こっているかを簡単に見つけることができます。これは、接続のデバッグで非常に役立ちます。 、認証 および構成の問題 。
[email protected]〜] $ scp -v jdk-linux-x64_bin.rpm [email protected]:/ optExecuting:program / usr / bin / ssh host 172.20.10.8、user root、command scp -v -t / optOpenSSH_7.8p1、OpenSSL 1.1.1 FIPS 2018年9月11日debug1:構成データの読み取り/etc/ssh/ssh_configdebug1:構成データの読み取り/etc/ssh/ssh_config.d/05-redhat.confdebug1:構成データの読み取り/ etc / crypto-policies /back-ends/openssh.configdebug1:/etc/ssh/ssh_config.d/05-redhat.conf 8行目:* debug1のオプションの適用:172.20.10.8 [172.20.10.8]ポートへの接続22.debug1:接続が確立されました。 …………debug1:次の認証方法:password [email protected]のパスワード:
例4)複数のファイルをリモートシステムに転送する
複数のファイルを一度にscpコマンドを使用してリモートシステムにコピー/転送できます。scpコマンドで複数のファイルをスペースで区切って指定します。例を以下に示します
[[email protected]〜] $ scp install.txt index.html jdk-linux-x64_bin.rpm \ [email protected]:/ mnt [email protected]'s password:install.txt KB 0 100% s 00:00index.html 100%85KB 7.2MB / s 00:00jdk-linux-x64_bin.rpm 10例5)2つのリモートホスト間でファイルを転送する
scpコマンドを使用して、2つのリモートホスト間でファイルとディレクトリをコピーできます。2つのリモートLinuxシステムに接続できるローカルLinuxシステムがあるとします。したがって、ローカルLinuxシステムからscpコマンドを使用して、これら2つのシステム間でファイルをコピーできます。
構文:
#scp [email protected] _hosts1:/
[email protected] _host2:/ 例を以下に示します
#scp [email protected]:〜/ backup-Oct.zip [email protected]:/ tmp#ssh [email protected] "ls -l /tmp/backup-Oct.zip" -rwx ----- -。 1ルートルート74743808010月19日12:02/tmp/backup-Oct.zip例6)ファイルとディレクトリを再帰的にコピーする(-r)
scpコマンドで-rオプションを使用して、ディレクトリ全体をあるシステムから別のシステムに再帰的にコピーします。例を以下に示します。
[[email protected]〜] $ scp -r Downloads [email protected]:/ opt以下のコマンドを使用して、ダウンロードフォルダがリモートシステムにコピーされているかどうかを確認します。
[[email protected]〜] $ ssh [email protected] "ls -ld / opt /Downloads"drwxr-xr-x。 2ルートルート75Oct19 12:10 / opt / Downloads [[email protected]〜] $例7)圧縮(-C)を有効にして転送速度を上げる
scpコマンドでは、-Cオプションを使用して圧縮を有効にすることで転送速度を上げることができます。これにより、送信元での圧縮と宛先ホストでの解凍が自動的に有効になります。
[メール保護]〜] $ scp -r -Cダウンロード[メール保護]:/ mnt上記の例では、圧縮を有効にしてダウンロードディレクトリを転送しています。
例8)コピー中の帯域幅を制限する(-l)
scpコマンドで「-l」オプションを使用して、コピー中の帯域幅の使用を制限します。帯域幅はキロビット/秒で指定されます。例を以下に示します
[[email protected]〜] $ scp -l 500 jdk-linux-x64_bin.rpm [email protected]:/ var例9)scp(-P)中に別のsshポートを指定する
宛先ホストでsshポートが変更されるシナリオがいくつかある可能性があるため、scpコマンドを使用しているときに、「-P」オプションを使用してsshポート番号を指定できます。
[[email protected]〜] $ scp -P 2022 jdk-linux-x64_bin.rpm [email protected]:/ var上記の例では、リモートホストのsshポートは「2022」です
例10)コピー中にファイルのアクセス許可、モード、アクセス時間を保持する(-p)
ソースから宛先にコピーする際にアクセス許可、アクセス時間、モードを保持するには、scpコマンドの「-p」オプションを使用します
[[email protected]〜] $ scp -p jdk-linux-x64_bin.rpm [email protected]:/ var / tmpjdk-linux-x64_bin.rpm 100%10MB 13.5MB / s 00:00 [[e ]〜] $例11)scpでクワイエットモード(-q)でファイルを転送する
scpコマンドで「-q」オプションを使用して、sshの転送の進行状況、警告、および診断メッセージを抑制します。例を以下に示します
[[email protected]〜] $ scp -q -r Downloads [email protected]:/ var / tmp [[email protected]〜] $例12)転送中にscpでファイルの識別を使用する(-i)
ほとんどのLinux環境では、キーベースの認証が推奨されます。 scpコマンドでは、「-i」オプションを使用して識別ファイルまたは秘密鍵ファイルを指定します。例を以下に示します。
[[email protected]〜] $ scp -i my_key.pem -r Downloads [email protected]:/ root上記の例では、「my_key.pem」はIDファイルまたは秘密鍵ファイルです。
例13)scp(-F)で別の「ssh_config」ファイルを使用する
異なるネットワークを使用してLinuxシステムに接続するシナリオがいくつかあります。一部のネットワークがプロキシサーバーの背後にある可能性があるため、その場合は異なる ssh_configが必要です。 ファイル。
scpコマンドの別のssh_configファイルは、「-F」オプションで指定されます。例を以下に示します
[[email protected]〜] $ scp -F / home / pkumar / new_ssh_config -r Downloads \ [email protected]:/ root [email protected]'s password:jdk-linux-x64_bin.rpm 100%10MB 16.6 MB / s 00:00backup-Oct.zip 100%713MB 41.9MB / s 00:17index.html保護されたメール00:00 [$] 100%85例14)scpコマンドで別の暗号を使用する(-c)
デフォルトでは、scpは「AES-128」暗号を使用してファイルを暗号化します。 scpコマンドで別の暗号を使用する場合は、「-c」オプションに続けて暗号名を使用します。
ファイルの転送中にscpコマンドで「3des-cbc」暗号を使用したいとします。次のscpコマンドを実行します
[[email protected]〜]#scp -c 3des-cbc -r Downloads [email protected]:/ root以下のコマンドを使用して、sshおよびscp暗号を一覧表示します。
[[email protected]〜]#ssh -Q cipher localhost |貼り付け-d、-s -3des-cbc、aes128-cbc、aes192-cbc、aes256-cbc、[メール保護]、\ aes128-ctr、aes192-ctr、aes256-ctr、[メール保護]、[メール保護] 、\[メール保護][[メール保護]〜]#このチュートリアルは以上です。scpコマンドの詳細については、manページを参照してください。以下のコメントセクションでフィードバックやコメントを共有してください。
また読む :Linuxでの11の「df」コマンドの例
Linux