scp コピー元ファイル [[ユーザー名@]コピー先ホスト:]コピー先ファイル
ネットワーク上にあるサーバーとの間でファイルをコピーするにはrcpコマンドを使うのが一般的です。ですが,rcpコマンドでの通信は暗号化されていないので,途中で盗聴されてしまう可能性があります。盗聴の危険性がある環境で安全にコピーする場合にはscpコマンドを使うのがいいでしょう。scpコマンドでは,sshを使った暗号化通信でファイルをコピーします。
例えば,scpコマンドでローカル・ホストのsendfileという名前のファイルを,リモート・ホスト(10.161.165.196)の/home/testuser/にgetfileというファイル名でコピーする場合は以下のようなコマンドを実行します(図1)。なお,図1の画面ではtestuserというユーザー名でリモート・ホストに接続しています。
scp ./sendfile testuser@10.161.165.196:./getfile
ちなみに,ローカル・ホストのtestdirディレクトリの配下にあるファイルやディレクトリを再帰的にリモート・ホストにコピーする場合は,以下のように-rオプションを付けてscpコマンドを実行します(図2)。
scp -r ./testdir/ testuser@10.161.165.196:~/testdir/
なお,scpコマンドはデフォルトではssh_configファイルに設定されている値を使ってコピーします。この値を変えてコピーしたい場合は-oオプションを付けて指定します。例えば,デフォルトとは逆にまずsshバージョン1を試してからsshバージョン2を試すという順序にしたい場合は,以下のようにProtocol項目を指定して変更します(図3)
scp -o Protocol=1,2 ./bigfile testuser@10.161.165.196:./bigfile
この図3では,さらに同じオプションとして-Cオプションを加え,大きいファイルを圧縮してリモート・ホストにコピーしている。コピー時間を見ると,ファイルを圧縮することで転送時間が短くなっていることが確認できる。