scpを使う場合、サーバ側にもscpがインストールされて無いといけないのだけど、ごくたまにscpがインストールされていない場合がある。 そんなときは、以下のようにすることでsshコマンド経由でファイルのやり取りをすることができる。
単体ファイルの場合
cat file | ssh user@host 'cat > ./file' # リモートサーバにコピーする場合
ssh user@host 'cat ./file' | cat > ./file # リモートサーバからコピーする場合
複数ファイルの場合
tar zcf - /path/to/dir | ssh user@host 'cat|tar zx -C /path/to/dir' # リモートサーバにコピーする場合
ssh user@host 'tar zcf - /path/to/dir' | tar xz -C /path/to/dir # リモートサーバからコピーする場合
これからもscpを使っていくならサーバ側にインストールした方が良いと思うけど、その場限りでの間に合わせならこういった使い方もあるということで。