Table of Contents
SCPコマンドとは?
SCP(Secure Copy Protocol)は、SSH(Secure Shell)を利用してファイルを安全にリモートマシンへコピーするためのコマンドです。ネットワークを介したファイル転送を暗号化するため、セキュリティを確保しつつデータを送受信できます。
主な特徴
- SSHを利用するため、安全な通信が可能
- リモートサーバーとローカルマシン間のファイル転送が可能
- ディレクトリごと転送できる
- パスワード認証またはSSH鍵認証が利用可能
SCPの基本構文
SCPの基本的なコマンド構文は以下の通りです
scp [オプション] 転送元ファイル ユーザー名@ホスト名:転送先パス
また、リモートサーバーからローカルへコピーする場合は以下のようになります。
scp [オプション] ユーザー名@ホスト名:転送元ファイル 転送先パス
SCPの具体的な使い方
1. ローカルからリモートへファイルを転送
scp sample.txt user@192.168.1.100:/home/user/
sample.txt
を192.168.1.100
の/home/user/
に転送user
はリモートサーバーのユーザー名
2.リモートからローカルへファイルを取得
scp user@192.168.1.100:/home/user/sample.txt .
- リモートサーバーの
/home/user/sample.txt
を現在のディレクトリにコピー
3. ディレクトリごと転送
ディレクトリを転送する場合は -r
オプションを追加します。
scp -r myfolder user@192.168.1.100:/home/user/
myfolder
ディレクトリごと転送
4.指定ポートを使う(デフォルトは22)
SSHのポートがデフォルト(22)以外の場合、-P
オプションで指定できます。
scp -P 2222 sample.txt user@192.168.1.100:/home/user/
2222
番ポートを使用して転送
5. SSH鍵を指定して転送
パスワード入力を省略するために、SSH鍵を指定できます。
scp -i ~/.ssh/id_rsa sample.txt user@192.168.1.100:/home/user/
6. 転送の進捗状況を表示
大きなファイルを転送する際は、-v
オプションで詳細なログを確認できます。
scp -v sample.txt user@192.168.1.100:/home/user/
7. 帯域幅を制限して転送
ネットワーク負荷を軽減したい場合、-l
オプションを使って転送速度を制限できます。
scp -l 500 sample.txt user@192.168.1.100:/home/user/
-l 500
は 500 Kbit/s に制限
SCPを使う際の注意点
- SSHの設定を確認
- SCPはSSHを利用するため、リモートサーバーのSSHが有効になっている必要があります。
sshd_config
の設定でPermitRootLogin no
になっている場合、rootユーザーでのSCP転送が制限される可能性があります。
- ファイルのパーミッション
- 転送したファイルのパーミッションが適切でない場合、アクセスできないことがあります。
chmod
やchown
コマンドで適切に設定してください。
- 鍵認証の設定
- パスワード入力なしで転送を行うには、SSH鍵を設定しておくと便利です。
ssh-copy-id user@192.168.1.100
を実行して、公開鍵を転送しておくとログインがスムーズになります。
まとめ
SCPは、SSHを利用した安全なファイル転送を実現するコマンドであり、ローカルとリモートの間で簡単にファイルをやり取りできます。
ディレクトリの転送や、SSH鍵認証の活用など、用途に応じて適切に使い分けましょう。