ジャンナのテーマ ライセンスが検証されていません. テーマ オプション ページに移動してライセンスを検証します. ドメイン名ごとに XNUMX つのライセンスが必要です.

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

ファイルをリモート Linux サーバーに転送する場合、いくつかのオプションがあります。 最善の方法の XNUMX つは、セキュア コピー (SCP) と呼ばれるプログラムを使用することです。SCP は、SSH を介して実行され、ネットワークを介してリモート システムにファイルをすばやく転送します。 このチュートリアルでは、SCP を使用して Linux でファイルを安全に転送する方法を示します。

scp-transfer-linux-00-featured-image-800x400.jpg Linux で SCP を使用して安全にファイルを転送する方法

SSH 構成

リモート サーバーに、SSH サーバーをインストールする必要があります。 Linux で最も一般的なのは OpenSSH サーバーです。 インストールするには、次のコマンドのいずれかを実行します。

# Debian/Ubuntu ベースのサーバー sudo apt install ssh # Fedora sudo dnf install openssh

scp-transfer-linux-01-installing-ssh.png Linux で SCP を使用して安全にファイルを転送する方法

ディストリビューションによっては、一部のソフトウェア ファイアウォールを介して SSH を許可する必要がある場合があります。 Ubuntu では、この問題は存在しませんが、 フェドーラ 次のコマンドも実行する必要があります。

sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload

scp-transfer-linux-02-fedora-enable-firewall.png Linux で SCP を使用して安全にファイルを転送する方法

SSH 経由でシステムに接続する

SSH 経由で接続する前に、リモート サーバーの IP アドレスを知る必要があります。 グラフィック サーバーでは、システム設定のネットワーク アプレットに IP アドレスが表示されます。 ほとんどのサーバーでは、端末で ip コマンドを使用する必要があります。

ip addr

scp-transfer-linux-04-check-ip-address.png Linux で SCP を使用して安全にファイルを転送する方法

出力で、で始まる行を見つけます INET 以内に イーサX أو enpXsy 、ネットワーク インターフェイスがシステムに接続する方法によって異なります。 私の場合、それは 192.168.68.108.

テストする SSH接続 、デバイスに移動 Linux 異なるタイプ:

変化する "ユーザー" 私に اسمالمستخدم 実際のサーバー。

scp-transfer-linux-05-connecting-to-remote-server.png Linux で SCP を使用して安全にファイルを転送する方法

入力 パスワード このアカウント、そしてあなたは働いています。 について質問があれば 「ホストの信憑性を証明することはできません。」 と答えればいいだけ "はい"。 これは、詐欺ではなく、実際のサーバーに接続していることを確認するように設計されたセキュリティ チェックです。 サーバーに直接ログインしたときに表示されるのと同じプロンプトがクライアント システムに表示されます。これは、接続が成功したことを意味します。 また、最大限のセキュリティを確保するために SSH 接続を構成する必要があります。 二要素認証を設定する 、次のステップに進む前に。

また読む:  2025 年に Linux システムに PowerShell をスムーズにインストールして実行するための手順

SCP を使用してファイルを転送する

SSH 接続をテストしたので、XNUMX つのデバイス間でファイルのコピーを開始します。 安全なコピーは、scp コマンドを使用して実現されます。 scp コマンドの基本的な形式は次のとおりです。

scp /パス/宛先/ファイル ユーザー@IPアドレス:パス/宛先/希望の/宛先

たとえば、ファイルをコピーするには 「バックアップ.tar.gz」 ローカル マシンからフォルダへ 「バックアップ.tar.gz」 ユーザーのホームディレクトリに 「ラムセス」 アドレスを持つリモートサーバー上 IP 192.168.68.165 、 使用する:

SCPバックアップ.tar.gz [メール保護]:~/バックアップ/

scp-transfer-linux-06-basic-copying.png Linux で SCP を使用して安全にファイルを転送する方法

ssh を使用して接続する場合と同様に、パスワードの入力を求められます。 コマンドで指定されているように、ユーザー名の入力を求めるプロンプトは表示されません。

次のようなワイルドカードも使用できます。

scp *.tar.gz [メール保護]:~/バックアップ/

scp-transfer-linux-07-glob-matching-copy.png Linux で SCP を使用して安全にファイルを転送する方法

リモート サーバーからローカル マシンにファイルをコピーするには、パラメーターを逆にします。

scp [メール保護]:~/backups/backup.tar.gz ./

scp-transfer-linux-08-inverse-copying.png Linux で SCP を使用して安全にファイルを転送する方法

末尾のポイントに注目してください。 その意味は 「現在のフォルダ」 、と同様に cp 標準コマンド أو 必要に応じて、別のディレクトリを簡単に選択できます。

scp-r [メール保護]:~/backups/サーバーからのバックアップ/

ワイルドカードも同様です:

scp [メール保護]:~/backups/*.txz ./

ディレクトリをリモートサーバーに再帰的にコピーするには、次を使用します オプション -r:

scp -r バックアップ/ [メール保護]:~/バックアップ/

scp-transfer-linux-09-recursive-copying.png Linux で SCP を使用して安全にファイルを転送する方法

ディレクトリの複製コピーをリモート サーバーからローカル マシンにコピーするには、次のコマンドを使用します。

scp-r [メール保護]:~/バックアップ/ ./

scp-transfer-linux-10-reverse-recursive-copying.png Linux で SCP を使用して安全にファイルを転送する方法

SCP でのファイル転送圧縮

基本的なコピーとは別に、これらのファイル転送中の SCP の動作を変更することもできます。 たとえば、次のタグを使用できます。 -C SCP がリモート クライアントに送信するデータを圧縮するには:

scp -C バックアップ.tar.gz [メール保護]:/ホーム/ラムセス/

このオプションは、SCP 経由で送信される各データ パケットを圧縮することによって機能します。 そのため、帯域幅が制限された接続を使用していて、ファイルをリモート サーバーに確実に送信したい場合、これは非常に便利です。

scp-transfer-linux-11-data-compression-copy.png Linux で SCP を使用して安全にファイルを転送する方法

上記のオプションと同様に、次を使用することもできます -C タグと一緒に -r ファイルを圧縮し、再帰的にリモート マシンに転送します。 たとえば、次のコマンドはファイルを圧縮して復元します 「バックアップ.tar.gz」 私のリモートサーバーから:

scp-Cr [メール保護]:/ホーム/ラムセス/バックアップ/ホーム/ラムセス/

scp-transfer-linux-12-reverse-data-compression-copy.png Linux で SCP を使用して安全にファイルを転送する方法

SCP でデータ転送を最適化する

ほとんどの場合、SCP は使用しようとします。 暗号化アルゴリズム AES-128 すべてのファイル転送に対して。 ただし、この特定のアルゴリズムが転送するファイルに適していない場合があります。

また読む:  これらの素晴らしいツールを使用して、コマンドライン経由で音楽を楽しみましょう。

これを知っていれば、特定の送信の暗号化アルゴリズムを直接変更することで、SCP をさらに改善して安全にすることができます。 これを行うには、タグを使用する必要があります -c 使用するコードが続きます。

たとえば、次のコマンドはファイルを移動します 「バックアップ.tar.gz」 を使用してリモートサーバーに AES-256:

scp -c aes256-ctr ./backup.tar.gz [メール保護]:/ホーム/ラムセス/

scp-transfer-linux-13-change-default-cipher.png Linux で SCP を使用して安全にファイルを転送する方法

さらに、それはあなたにオプションを提供します -c また、特定のファイルの転送に使用する暗号のリストも提供してください。 たとえば、次のコマンドは両方を使用します。 AES-192 و AES-256 ファイル転送中 「バックアップ.tar.gz」 私のリモートサーバーへ:

scp -c aes192-ctr, aes256-ctr ./backup.tar.gz [メール保護]:/ホーム/ラムセス/

scp-transfer-linux-14-create-cipher-preference-list.png Linux で SCP を使用して安全にファイルを転送する方法

SCP で帯域幅の使用を制限する

ファイル パケット圧縮は、ネットワーク状態が悪い場合に SCP を使用するのに役立ちますが、送信中にプログラムが使用する帯域幅を制限することもあります。 これは、限られた接続を使用していて、SCP がネットワーク帯域幅を占有したくない場合に役立ちます。

プログラムの有効な帯域幅を制限するには、使用する必要があります タグ -l 希望する最大額が続きます 単位はキロビット/秒 (Kb/s)。 たとえば、次のコマンドを実行すると、ファイルが移動されます 「バックアップ.tar.gz」 有効な帯域幅が 1600 Kb/s のリモート サーバーへ:

scp -l 1600 ./backup.tar.gz [メール保護]:/ホーム/ラムセス/

scp-transfer-linux-15-limit-bandwidth-during-copy.png Linux で SCP を使用して安全にファイルを転送する方法

SCPによるテレツーテレ

SCP はファイル転送のみを処理し、ローカル マシンとリモート マシンを区別しないため、ローカル ファイルをリモート サーバーに、またはその逆にコピーする以外に、SCP を使用してローカル マシンから複数のリモート サーバーを管理することもできます。

XNUMX つのリモート サーバー間で転送するには、これらの各マシンのユーザー名とアドレスを明示的に指定する必要があります。 たとえば、次のコマンドを実行すると、ファイルが移動されます 「リモートバックアップ.tar.gz」 XNUMX つのリモート サーバー間でのマイニング:

scp [メール保護]:/home/ramces/remote-backup.tar.gz [メール保護]:/ホーム/ラムセス/

scp-transfer-linux-16-remote-to-remote-copy.png Linux で SCP を使用して安全にファイルを転送する方法

SCP でプロキシを使用する

デフォルトでは、SCP は XNUMX つの異なるホスト間でファイルを転送するときに、ローカル マシンの IP アドレスを使用します。 これは通常の状況ではまったく問題ありませんが、ローカル ネットワークが SCP アクティビティを制限している場合は問題になる可能性があります。 この問題に対処する簡単な方法の XNUMX つは、ローカル接続を SSH プロキシ経由で渡すことです。

これを行うには、タグを使用する必要があります -o 続いてオプション プロキシコマンド。 これにより、SCP コマンドを実行する新しいデバイスへの基本的な SSH 接続を作成できます。 たとえば、次のコマンドを実行すると、リモート マシンに新しい SSH エージェントが作成され、ファイルが転送されます。 「バックアップ.tar.gz」 それを使用して:

scp -o "ProxyCommand ssh [メール保護] nc %h %p" ./backup.tar.gz [メール保護]:/ホーム/ラムセス/

scp-transfer-linux-17-ssh-proxy-bypass.png Linux で SCP を使用して安全にファイルを転送する方法

SCP のデフォルト ポートを変更する

基本的な SSH プロキシの作成とは別に、SCP のデフォルト ポートを変更することもできます。 これは、Linux サーバーを保護していて、仮想ポートを公開したくない場合に特に便利です。

また読む:  Windows や Mac と比較して Linux が生産性向上に最適な理由

別のポートで SCP を使用するには、フラグを使用する必要があります -P 使用するポート番号が続きます。 たとえば、次のコマンドはディレクトリをコピーします "バックアップ" 再帰的にポートを使用してリモートサーバーに接続します 2222:

scp -r -P 2222 ./バックアップ [メール保護]:/ホーム/ラムセス/

scp-transfer-linux-18-using-custom-port.png Linux で SCP を使用して安全にファイルを転送する方法

SCP 静音モードを使用する

最後に、SCP コマンドから端末出力を完全に削除することもできます。 これは、端末で実行される非対話型スクリプトを作成する場合に特に便利です。 それだけでなく、作成することでこのプロセスを完全に自動化することもできます cronjob と転送 SSH キー あなたのサーバーにプライベート。

静かな SCP トランスポートを作成するには、タグを使用する必要があります -q. たとえば、次のコマンドはファイルを移動します 「バックアップ.tar.gz」 リモートサーバーに静かに:

scp -q ./backup.tar.gz [メール保護]:/ホーム/ラムセス/

scp-transfer-linux-19-quiet-mode.png Linux で SCP を使用して安全にファイルを転送する方法

よくある質問

Q1. テレポートするリモコンが SCP で機能しません。 どうすればこれを修正できますか?
答え。 この問題は、リモート マシンの構成ファイルの XNUMX つでブロックされたポートが原因である可能性が最も高いです。 これを修正するには、両方のデバイスで SSH のデフォルト ポートが開いていることを確認します。

この問題は、リモート マシンの XNUMX つが CG-NAT 接続の背後にあることによっても発生する可能性があるため、リモート マシンへの外部接続が適切に解決されません。 この問題を解決するには、使用する必要があります VLAN ソフトウェア 、 そのような ユグドラシル 、これにより、通過することができます CG-NAT。

Q2. SCP プロキシをオンにすると、リモート ホストが接続を閉じました。 私に何ができる?
答え。 この問題は、プロキシ マシンの問題が原因である可能性が最も高いです。 SSH エージェントを適切に開始するには、使用するマシンに OpenSSH サーバーと netcat があることを確認してください。 これらのプログラムをインストールするには Ubuntu、 次のコマンドを実行します。 sudo apt で ssh netcat をインストールします。

Q3. SCP で使用可能なすべての暗号を調べることはできますか?
答え。 デフォルトでは、SCP は暗号化機能を SSH プロトコルに大きく依存しています。 このため、SSH スクリプトを使用して、SCP と共に使用できる暗号のリストを出力できます。 たとえば、実行できます ssh -Q 暗号 デバイスで使用可能なすべての暗号の短いリストを出力します。

トップボタンに移動