scpコマンドは遠隔マシンへのファイルコピーを暗号化技術を用いて行うコマンドです。
scpコマンドの概要と使用方法を紹介します
- scpコマンドの概要
- scpコマンドの使い方
コマンド概要
scpでは指定したアドレスのマシンへファイルコピーするコマンドです。
scpでの通信は暗号化されるため、セキュアなコピーが可能です。
標準では22番ポートを使用します。
コマンドオプション
コマンドオプションを紹介します。
コマンドオプション | 意味 |
---|---|
-C | 圧縮して通信する |
-F | scpクライアントの設定ファイル指定 |
-i | 秘密鍵指定 |
-P | ポート番号指定 |
-l | 帯域指定[kbit/s] |
-p | タイムスタンプ変更無しでファイル転送 |
-q | プログレスバーを非表示 |
-r | ディレクトリを再起的に転送1 |
-1 | SSH version 1 接続 |
-2 | SSH version 2 接続 |
-4 | IPv4アドレス接続 |
-6 | IPv6アドレス接続 |
-X | X11転送を有効 |
コマンドの使い方
scpコマンドの使い方を紹介します。
遠隔サーバーへファイルコピー
scpコマンドで遠隔サーバーへファイルをコピーします。
コマンド形式
scp [転送ファイル名] [ユーザー名]@[IPアドレス]:[ディレクトリ]
コマンド実行例
$ scp hogehoge.txt user@111.111.111.111:/home/user/
user@111.111.111.111's password:
hogehoge.txt 100% 7000 781.1KB/s 00:00
遠隔サーバーからファイルコピー
scpコマンドで遠隔サーバーからファイルをコピーします。
コマンド形式
scp [ユーザー名]@[IPアドレス]:[転送ファイル名(絶対パス)] [コピー先ディレクトリ]
コマンド実行例
$ scp user@111.111.111.111:/home/user/hogehoge.txt /home/user
user@111.111.111.111's password:
hogehoge.txt 100% 7000 451.6KB/s 00:00
遠隔サーバーへ鍵認証でファイルコピー
scpコマンドで遠隔サーバーへファイルをコピーします。
コマンド形式
scp -i [認証鍵] [転送ファイル名] [ユーザー名]@[IPアドレス]:[ディレクトリ]
コマンド実行例
$ scp -i ~/.ssh/id_rsa hogehoge.txt user@111.111.111.111:/home/user/
hogehoge.txt 100% 7000 781.1KB/s 00:00
遠隔サーバーへポート指定でファイルコピー
scpコマンドで遠隔サーバーへファイルをコピーします。
コマンド形式
scp -P [ポート番号] [転送ファイル名] [ユーザー名]@[IPアドレス]:[ディレクトリ]
コマンド実行例
$ scp -P 22 hogehoge.txt user@111.111.111.111:/home/user/
user@111.111.111.111's password:
hogehoge.txt 100% 7000 781.1KB/s 00:00
scpコマンドのセキュリティ
scpコマンドは暗号化されているため、セキュアなファイルコピーが可能です。
クライアント-サーバー間の通信を第3者に盗聴されても、通信内容が暗号化されているため、ユーザー名/パスワードも含めて傍受される可能性が低くなります。
scpのログイン方法はパスワード認証と鍵認証がありますが、鍵認証の方がキーとなる文字列が多いため、よりセキュアです。
パスワード認証は、ブルートフォース攻撃等で突破されてしまう危険性があるため、鍵認証でのログインを行い、パスワード認証を非許容に設定するとセキュリティが向上します。
scpの標準ポートは22ですが、22以外に設定することも可能です。
悪意ある第3者は基本的には標準ポートから設定変更していないサーバーを狙うことが予想できます。
22以外の任意のポートをscpのポートとして、悪意ある第3者からのログインを回避できる可能性が高まります。
まとめ
scpコマンドの概要と使い方を紹介しました。
- ファイルを遠隔コピーできる
ファイル転送は、ftpコマンドでも実行可能ですが、セキュリティ観点で、暗号化されたscpコマンドでの実行を推奨します。