コマンド

SCPコマンドを徹底解説|オプションやFTPとの比較

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が使える条件

以下のコマンドを打ってsshサーバの状態を確認します。

# Ubuntu系の場合
sudo service ssh status

# CentOS/Red Hat系の場合
sudo systemctl status sshd

sshサーバがACTIVEになっていればOKです。

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をコピーしました