【総集編】SSHの基本的な使い方とその応用方法
SANA Sana's 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 sshd
sshサーバが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