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鍵認証の活用など、用途に応じて適切に使い分けましょう。