scpコマンドとは。セキュアなファイル転送の仕組み、使い方を解説

Linuxサーバー間でファイル転送を行う方法はいくつかありますが、安全性の高いファイル転送方法として、scp(Secure Copy)コマンドがあります。

scpコマンドはsshによって通信が暗号化されているため、安全にファイル転送を行うことが可能です。

 

本記事では、scpコマンドの仕組みのほか、scp以外の安全性の高いファイル転送プロトコルについても紹介します。

セキュリティリスクを減らすためにも、安全性の高い通信技術を知ることはとても大切です。

ぜひ最後までお読みください。

VPSならミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す

scpコマンドとは

scpコマンドの仕組み、使用するメリットやデメリットについて解説します。

scpコマンドの概要

scp(Secure Copy)コマンドは、SSH(Secure Shell)の暗号化技術を使用したファイル転送方法です。

2台のコンピューター間で、安全にファイルやディレクトリの転送が行えます。

scp以外にも、セキュアなファイル転送を実現する方法として、SFTPやFTPSなどがありますが、それぞれ仕組みやメリット・デメリットが異なります。

SFTPやFTPSについては、後ほど詳しく解説します。

scpコマンドの仕組み

scpコマンドで、SSHの暗号化技術によって安全な通信を実現するための仕組みを解説します。

SSHは、別のコンピューターにログインするためのプロトコルで、WindowsやLinuxのほか、iOSやAndroidにも実装されています。

 

SSHは、複数の認証方式を使用して、第三者に通信内容を見られることなく、安全な通信を可能にします。

主な認証方式には「パスワード認証」「公開鍵認証」があります。

 

パスワード認証では、転送先サーバーのユーザーIDとパスワードを使用してログインします。

scpでも、パスワード認証方式を使って接続する場合は、同様の方法で転送先サーバーにログインします。

 

公開鍵認証は、「公開鍵」と「秘密鍵」を照合し、認証する方式です。

先に受信側(転送先サーバー側)で秘密鍵を用いて公開鍵を作成し、公開鍵を公開します。

送信者は公開鍵を用いて送信するデータを暗号化し、データを送信します。

受信側は、送られたデータを秘密鍵で復号することで、安全にデータを読み取ります。

ポイントは、公開鍵で暗号化されたデータは秘密鍵でしか復号できないことです。

そのため、秘密鍵が漏れない限り、暗号化されたデータは解読できず、第三者から読み取られることはありません。

 

scpも、SSHと同じ技術をつかって、安全に通信を行います。

SSHについてもっと知りたい方は、「SSH接続とは」の記事をご覧ください。

Unix系OS専門のホスティングサービス「ミライサーバー」

scpコマンドのメリットとデメリット

安全な通信によるファイル転送を実現する方法はいくつかありますが、その中でもscpコマンドを使用することにはメリット・デメリットがあります。

scpのメリットは、シンプルで軽量なため、高速なファイル転送が実現できる点です。

デメリットとしては、できることは基本的にファイル転送のみなため、ファイル転送が途切れた場合の再開や、転送先サーバーのファイルの管理ができない点です。

目的に応じてコマンドを使い分けるようにしましょう。

scpコマンドの使い方

ローカルサーバーからリモートサーバーへファイルを転送する方法と、リモートサーバーからファイルを受領する方法について解説します。

接続には、ユーザーIDとして「testuser」を使用するものとします。

コマンドを使用するため、苦手な方はこちらの「基本のLinuxコマンド集」を見ながら作業してくださいね。

ローカルサーバーからリモートサーバーへファイルを転送する方法

最初に、ローカルサーバーからリモートサーバーへファイルを転送するコマンドを紹介します。

まず、scpコマンドの書式は以下のとおりです。

scp [オプション] コピー元 コピー先

「コピー元」は転送したいファイルのパスで指定し、「コピー先」は転送先のパスで指定します。

例えば、test.txtファイルを、exampleサーバーの/home/sample配下のディレクトリに転送したい場合は、以下のようなコマンドになります。

scp test.txt testuser@example:/home/sample/

このコマンドを実行すると、testuserのパスワードが聞かれます。

正しいパスワードを入力すると、ファイル転送が行われます。

 

転送したいものがファイルではなくディレクトリの場合は、「-r」のオプションを使用します。

例えば、「testdir」ディレクトリを、exampleサーバーの/home/sample配下のディレクトリに転送したい場合は、以下のコマンドになります。

scp -r testdir testuser@example:/home/sample/

リモートサーバーからファイルを受領する方法

逆に、リモートサーバーからファイルを受領することもできます。

この場合は、コピー元にリモートサーバー上のファイルを指定し、コピー先にローカルのパスを指定します。

例えば、exampleサーバーの/home/sample/test.txtファイルを、ローカルサーバーの/tmpディレクトリ配下に転送したい場合は、以下のようなコマンドになります。

scp testuser@example:/home/sample/test.txt /tmp

この場合も、testuserのパスワードが聞かれるので、正しいパスワードを入力すると、ファイル転送が行われます。

 

以上のように、コマンドをつかって簡単にファイル転送を行えます。

ssh通信が可能な環境であればscpコマンドも利用できるので、ぜひ実際に試してみてください。

scpコマンド以外のセキュアなファイル転送プロトコル

scpコマンド以外にも、セキュアなファイル転送プロトコルがあります。

ここでは、「FTPS」「SFTP」を紹介します。

FTPS

FTPS(File Transfer Protocol over SSL/TLS)は、FTPの通信を暗号化し、安全にファイル転送が行えるプロトコルです。

scpとの違いは、使用している暗号化技術が「SSL/TLS」である点です。

 

SSL/TLSも秘密鍵・公開鍵を使用した暗号化方式で、多くのインターネットインフラで対応されています。

そのため、SSLに対応しているかどうかを考慮することなく使用できます。

 

scpやSSHとは使用するポートが異なるため、FTPSを使用する場合はファイアウォールによってポートが遮断されていないか確認しておきましょう。

SFTP

SFTP(SSH File Transfer Protocol)は、scpコマンドと同じくSSHの仕組みを使ったファイル転送プロトコルです。

scpコマンドと比べ若干通信速度は劣りますが、scpコマンドとは異なり転送先サーバーのファイル管理や転送中断からの再開が行えるなど、高機能であるという特長があります。

SFTPの詳細については、「SFTPとは」の記事をご覧ください。

Unix系OS専門のホスティングサービス「ミライサーバー」

まとめ

本記事では、scpコマンドについて解説しました。

ファイル転送は遠隔地のサーバー管理でよく使用するコマンドです。

昨今では、レンタルサーバーやクラウドサービスなどを利用し、インターネットを経由してサーバーへファイル転送を行うことが増えています。

ファイル転送を行う際は、安全にファイル転送が行えるscpコマンドを使用することをおすすめします。

安全なファイル転送は他にもSFTPやFTPSがありますので、環境に合わせて上手に使い分けましょう。

UnixやLinuxのVPSならミライサーバー

ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。

ミライサーバーのVPSでは、高速処理が可能なSSD全プランに搭載しています。

OSは、UbuntuDebianAlmaLinuxなどの豊富なラインアップから選択できます。

2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。

▼ミライサーバーについてはこちら▼Unix系OS専門のホスティングサービス「ミライサーバー」

VPSなら「ミライサーバー」

・全プランSSD搭載
・2週間無料

▶ ミライサーバーを無料で試す

関連記事

特集記事

TOP