ConoHaVPS

【30分でマスター】SCPコマンドを使いこなす

SANA

こんにちは。今回は「SCP」について説明します。

SCP(Secure Copy Protocol)は、SSHプロトコルを利用して安全にファイルを転送するためのツールです。特にサーバー管理やリモート作業をする際に不可欠なツールとなっています。

さて、今回の前提を以下に書きます。

<接続先VPSサーバ情報>
サーバ:ConoHa VPS
OS:Ubuntu22.04
以下のパッケージインストール済み
・OpenSSH:公開鍵認証を用いたSSHやSCP転送にも対応している。

SCPとFTPの違いは?

同じファイル転送のコマンドで有名なFTPと違いをまとめます。

項目SCPFTP
使用プロトコルSSHTCP
デフォルトポートポート22ポート21(コントロール)
ポート20(データ転送)
暗号化すべての通信は暗号化される。暗号化されない。
データ転送速度SSHを介した暗号化によりFTPと比べると転送速度はやや遅くなる。FTPは平文でデータを転送するためSCPと比べて転送速度が速い。
サーバー間転送直接サーバ間の転送が可能。クラアントを介してのみ実行可能。
(サーバA→クラアント→サーバB)
適用例・セキュリティが求められる環境でのファイル転送
・リモートサーバ間のファイル転送
・管理業務や自動化スクリプトによるサーバー管理に適している。
クライアントを介してサーバーAからファイルを転送する場合
大量のファイルやデータのバックアップ・同期が求められるシチュエーションに適している。
SCPとFTPの違い

SCPが使える条件

SCPはSSHプロトコルを利用してファイルを転送するため、転送先および転送元のサーバーにSSHサーバーが稼働している必要があります。SSHについては以下の記事にて解説をしていますので確認してください。

【総集編】SSHの基本的な使い方とその応用方法
【総集編】SSHの基本的な使い方とその応用方法

SCPコマンド例

オプションを含めた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
Xからの読者コメントをお待ちしています。
ブログ更新の励みになります!
ABOUT ME
さな夫
さな夫
JTC エクストリーム中間管理職
東京生まれ。30代。大学院修了後に今のSIer会社へ就職。普段はアプリ開発の設計を担当。奥さんと子供2人とほのぼのとした日常を過ごしながら技術系のブログを執筆中。
記事URLをコピーしました