【30分で完了】ConoHa VPSへSSH接続する方法を解説
SANA Sanao 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からファイルを転送する場合 大量のファイルやデータのバックアップ・同期が求められるシチュエーションに適している。 | 
以下のコマンドを打ってsshサーバの状態を確認します。
# Ubuntu系の場合
sudo service ssh status
# CentOS/Red Hat系の場合
sudo systemctl status sshdsshサーバがACTIVEになっていればOKです。

オプションを含めた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