WebサーバをHTTPS化する|Apache|ConoHa VPS
SANA Sana's Tech Lab
こんにちは。今回は「SCP」について説明します。
SCP(Secure Copy Protocol)は、SSHプロトコルを利用して安全にファイルを転送するためのツールです。特にサーバー管理やリモート作業をする際に不可欠なツールとなっています。
さて、今回の前提を以下に書きます。
<接続先VPSサーバ情報>
サーバ:ConoHa VPS
OS:Ubuntu22.04
以下のパッケージインストール済み
・OpenSSH:公開鍵認証を用いたSSHやSCP転送にも対応している。
同じファイル転送のコマンドで有名なFTPと違いをまとめます。
項目 | SCP | FTP |
---|---|---|
使用プロトコル | SSH | TCP |
デフォルトポート | ポート22 | ポート21(コントロール) ポート20(データ転送) |
暗号化 | すべての通信は暗号化される。 | 暗号化されない。 |
データ転送速度 | SSHを介した暗号化によりFTPと比べると転送速度はやや遅くなる。 | FTPは平文でデータを転送するためSCPと比べて転送速度が速い。 |
サーバー間転送 | 直接サーバ間の転送が可能。 | クラアントを介してのみ実行可能。 (サーバA→クラアント→サーバB) |
適用例 | ・セキュリティが求められる環境でのファイル転送 ・リモートサーバ間のファイル転送 ・管理業務や自動化スクリプトによるサーバー管理に適している。 | クライアントを介してサーバーAからファイルを転送する場合 大量のファイルやデータのバックアップ・同期が求められるシチュエーションに適している。 |
SCPはSSHプロトコルを利用してファイルを転送するため、転送先および転送元のサーバーにSSHサーバーが稼働している必要があります。SSHについては以下の記事にて解説をしていますので確認してください。
オプションを含めたSCPの基本的な使い方について解説します。
基本的な文法は以下です。
scp [オプション] [転送元] [転送先]
リモートサーバーからローカルへファイルをコピーする場合:
scp user@remote_host:/path/to/remote/file /path/to/local/destination
ローカルからリモートサーバーへファイルをコピーする場合:
scp /path/to/local/file user@remote_host:/path/to/remote/destination
-r
オプション)SCPコマンドは単一のファイルのみを転送しますが、ディレクトリをそのままコピーする場合に使用します。
scp -r /path/to/local/directory user@remote_host:/path/to/remote/destination
-P
オプション)デフォルトではSSHの標準ポートである22番ポートを使用するが、サーバーのセキュリティ対策などによって異なるポート番号を使用する場合があります。その場合はポート番号を指定する必要があります。下の例は2222番ポートを指定してます。
scp -P 2222 /path/to/local/file user@remote_host:/path/to/remote/destination
-v
オプション)主にトラブルシューティングや、ネットワーク接続の状態を確認したい場合に役立ちます。
scp -v /path/to/local/file user@remote_host:/path/to/remote/destination
-l
オプション)転送速度を制限する場合は、-l
オプションを使用して速度を kbps 単位で指定します。下の例では1Mbpsの転送速度指定をしてます。
scp -l 1000 /path/to/local/file user@remote_host:/path/to/remote/destination