今回は、scpコマンドを整理します。
このscp(Secure Copy)コマンドはファイルをSSH(Secure Shell)で暗号化した上で転送してくれるコマンドです。
ローカルからリモート(アップロード)もしくは
リモートからローカル(ダウンロード)への転送に使用できます。
基本的な書式は下記の通りです。
scp オプション コピー元 コピー先
なお、このコピー元もしくはコピー先にリモートホストを指定する場合には、下記の書式を用います。
リモートホストユーザ名@リモートホスト名(IP):パス
主要なオプションは下記の通りです。
-i 秘密鍵ファイル:秘密鍵ファイル(identityファイル)を指定します。
-P ポート番号:ポート番号を指定します。
-r:ディレクトリを再帰的にコピーします。
-p:ファイルのパーミッションや、最終変更時刻を保ったまま転送します。
このコマンドを使用する場合、プログラム超初心者の私がハマったのが
位置関係です。
この位置関係を理解するために
ローカルホストと
リモートホストについて理解しておく必要があります。
ローカルホスト 【 localhost 】 local host
ローカルホストとは、通信ネットワークにおける位置関係を示す用語の一つで、利用者が現在操作している手元のコンピュータや端末のこと。通信相手のコンピュータは「リモートホスト」(remote host)という。
ネットワークにおける「自分自身」を意味するもので、IPアドレス(IPv4)では「127.0.0.1」が、IPv6アドレスでは「::1」が、ホスト名には慣用的に「localhost」が用いられる。自らがネットワーク上に提供しているサーバ機能などに自分でアクセスする際などに使われる。
『ローカルホストとは|localhost|local host - 意味/解説/説明 ...』
リモートホスト 【 remote host 】 リモホ
リモートホストとは、通信ネットワークにおける位置関係を示す用語の一つで、現在接続している通信相手のコンピュータや端末のこと。自分自身のことは「ローカルホスト」(localhost)という。
『リモートホストとは|remote host|リモホ - 意味/解説/説明/定義 ...』
このscpコマンドはローカルホストの位置で使用するということを意識する必要があります。
つまり、ローカルホストの位置でリモートホストへファイルをコピーして送ったり、リモートホストからファイルをコピーして持ってきたりする訳ですね。
以上です!
【参考サイト】
『scpコマンドでアップロード&ダウンロード』
『scp – リモートマシンにファイルコピー - Linuxコマンド』
『【scp】ファイル・フォルダ転送コマンドの使い方とオプション[アップロード][ダウンロード]』
『UNIX 環境でのSCP/SFTPの利用』
『scp - ファイル転送コマンド』