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接続とは」の記事をご覧ください。
2022.09.29
SSH接続とは。リモートコンピューターへの接続方法をわかりやすく解説
遠隔地にあるサーバーや、VPS(仮想専用サーバー)へ接続して遠隔操作を行う方法として、SSH接続があります。リモートコンピューターへ...
scpコマンドのメリットとデメリット
安全な通信によるファイル転送を実現する方法はいくつかありますが、その中でもscpコマンドを使用することにはメリット・デメリットがあります。
scpのメリットは、シンプルで軽量なため、高速なファイル転送が実現できる点です。
デメリットとしては、できることは基本的にファイル転送のみなため、ファイル転送が途切れた場合の再開や、転送先サーバーのファイルの管理ができない点です。
目的に応じてコマンドを使い分けるようにしましょう。
scpコマンドの使い方
ローカルサーバーからリモートサーバーへファイルを転送する方法と、リモートサーバーからファイルを受領する方法について解説します。
接続には、ユーザーIDとして「testuser」を使用するものとします。
コマンドを使用するため、苦手な方はこちらの「基本のLinuxコマンド集」を見ながら作業してくださいね。
2022.12.01
基本のLinuxコマンド集。目的別に紹介します【初心者必見】
GUI(グラフィカルユーザーインタフェース)で直感的に操作できるWindowsに比べ、Linuxはコマンドを使用するCUI(キャラクタユーザ...
ローカルサーバーからリモートサーバーへファイルを転送する方法
最初に、ローカルサーバーからリモートサーバーへファイルを転送するコマンドを紹介します。
まず、scpコマンドの書式は以下のとおりです。
「コピー元」は転送したいファイルのパスで指定し、「コピー先」は転送先のパスで指定します。
例えば、test.txtファイルを、exampleサーバーの/home/sample配下のディレクトリに転送したい場合は、以下のようなコマンドになります。
このコマンドを実行すると、testuserのパスワードが聞かれます。
正しいパスワードを入力すると、ファイル転送が行われます。
転送したいものがファイルではなくディレクトリの場合は、「-r」のオプションを使用します。
例えば、「testdir」ディレクトリを、exampleサーバーの/home/sample配下のディレクトリに転送したい場合は、以下のコマンドになります。
リモートサーバーからファイルを受領する方法
逆に、リモートサーバーからファイルを受領することもできます。
この場合は、コピー元にリモートサーバー上のファイルを指定し、コピー先にローカルのパスを指定します。
例えば、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とは」の記事をご覧ください。
2022.10.06
SFTPとは。安全なファイル転送の方法、FTPとの違いを解説
データセンターなどの遠隔地にあるサーバーや、レンタルサーバー、クラウド上にある仮想サーバー(VPS)へファイル転送を行うには、ファイル転送プ...
まとめ
本記事では、scpコマンドについて解説しました。
ファイル転送は遠隔地のサーバー管理でよく使用するコマンドです。
昨今では、レンタルサーバーやクラウドサービスなどを利用し、インターネットを経由してサーバーへファイル転送を行うことが増えています。
ファイル転送を行う際は、安全にファイル転送が行えるscpコマンドを使用することをおすすめします。
安全なファイル転送は他にもSFTPやFTPSがありますので、環境に合わせて上手に使い分けましょう。
UnixやLinuxのVPSならミライサーバー
ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。
ミライサーバーのVPSでは、高速処理が可能なSSDを全プランに搭載しています。
OSは、UbuntuやDebian、AlmaLinuxなどの豊富なラインアップから選択できます。
2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。