【scpコマンド】リモート・ローカル間でファイルをやりとりするコマンド
cp
(secure copy)はネットワーク上のホスト間でファイルをコピーするためのコマンドです。scp
はデータ転送のためにssh
を使っているため、、ssh
と同じく安全にファイルのやりとりができます。
ファイル名にはユーザとホストの指定を含んで指定することができ、それらのホスト間で通信を行います。具体的な書式は、[ユーザ名]@[ホスト名]:[ファイルのパス]
のような書式で指定することができます。
例えば、kengo92i
というユーザで、example.com
というホストに接続し、ユーザディレクトリ直下にあるhoge.txt
というファイルを指定する場合は、kengo92i@example.com:/home/kengo92i/hoge.txt
とします。
当然のことながら、ローカルファイル名は、絶対パス名または相対パス名を使用して明示的に指定することもできます。
データの受信 (リモート→ローカル)
指定したリモートホストのファイルを、コマンドを実行したカレントディレクトリにコピーします。
scp [user_name]@[remote_host]:[remote_path] [local_path]
$ scp kengo92i@example.com:/home/kengo92i/hoge.txt .
データの送信 (ローカル→リモート)
指定したローカルファイルを、リモートホストのユーザディレクトリ直下にコピーします。
scp [local_path] [user_name]@[remote_host]:[remote_path]
$ scp fuga.txt kengo92i@example.com:.
ポートを指定する
-P
オプションを指定することで、指定したポート番号で接続する
$ scp -P 2222 kengo92i@example.com:/home/kengo92i/hoge.txt .
ディレクトリをコピーする
-r
オプションを指定することで、指定したディレクトリ以下のファイルをコピーできる。
$ scp -r kengo92i@example.com:/home/kengo92i/sample ./sample
鍵を指定して接続する
-i
オプションを指定することで、鍵ファイルを指定してホストに接続できます。
scp -i [key_file] ~省略
$ scp -i ~/.ssh/id_rsa admin@example.com:/home/admin/secret.txt .
ssh
の秘密鍵が存在しない場合は、ssh-keygen -t rsa
とターミナルで実行すればssh
の鍵が作成される。
その他のオプション
- 管理者必見! ネットワーク・コマンド集 - scpコマンド:ITpro
- ターミナルに
man scp
と入力する