覚書!ssh でファイル転送(SCP コマンド)

どうもカイワレ2号です。
今回は覚書です。契約しているVPS(Linux)にファイルを転送する必要が出てきたため方法を調べました。
ファイルの転送であればFTPとかを使えばいいのですが、VPSはインターネットにさらされているサーバなのでできれば不要なポートはオープンしたくないと思っています。
なによりFTPをインストールするのも面倒くさいですし(汗

そこでVPSでOSを起動してから使用できるSSHを使用してファイルをコピーする方法があったようなと、記憶をたどりながら調べてみるとSCPコマンドを使用してコピーできるようです。
今回はSCPコマンドの使い方を覚書です!
(VPSについては別の機会に・・・)

■ローカルホスト→リモートホストへ転送(アップロード)
まずは、自分のパソコン(ローカルホスト)からVPS(Linux)へのアップロードです。

$ scp [オプション] [ファイル名] [ユーザ名]@[ホスト名]:[リモートパス]

(例) ポート番号22で、test.bat を転送する
$ scp -P 22 test.dat user@10.244.0.xx:/home/user/

上記のコマンドを入力するとユーザ「user」のパスワードを求められます。
パスワードを入力すると、サーバ「10.244.0.xx」の「/home/user/」ディレクトリに「test.dat」がアップロードされます。
フォルダごとコピーする場合は、ファイル名指定の代わりに「-rq フォルダ名」を指定してあげればOKです。
$ scp -P 22 -rq data/ user@10.244.0.xx:/home/user/

■リモートホスト→ローカルホストへ転送(ダウンロード)
次はVPS(Linux)から自分のパソコン(ローカルホスト)へのダウンロードです。

$ scp [オプション] [ユーザ名]@[ホスト名]:[ファイル名] [ローカルパス (.)はカレント]

(例) ポート番号22で、test.bat を受信する
$ scp -P 22 user@10.244.0.xx:/home/user/test.bat .

転送と同じくパスワードを求められるので、ユーザ「user」のパスワードを入力します。
例ではダウンロード先のフォルダを「.」としているのでカレントフォルダにファイルがコピーされます。

思ったよりも簡単ですね!