TL;DR

Secure Copy の略。SSH プロトコルを使って、リモートサーバとファイルやディレクトリを送受信するコマンドである。そのプロトコル(Secure Copy Protocol)を指すこともある。

仕組み

OpenSSH の scp は、SSH 接続の上で SFTP プロトコルを使ってデータを転送する。-O を付けると、従来の SCP プロトコルを使う。

例

リモートの場所は [user@]host:[path] の形で書く。-r はディレクトリを再帰的にコピーし、-P は接続先のポートを指定し、-p は元のファイルの更新時刻、アクセス時刻、モードを保つ。

scp -r ./dir [email protected]:/tmp/

注意点

scp には脆弱性がある。そのため OpenSSH は、代わりに rsync や sftp コマンドを使うよう呼びかけている。ただ、scp は手軽なので、移行はなかなか進んでいない。

従来の SCP プロトコルは、リモートのユーザのシェルを実行するので、リモートのシェルで特別な意味を持つ文字を慎重にクォートする必要がある。

関連

  • SSH
  • rsync
  • sftp

出典