scp を使ってきた人向け|今後は SFTP・rsync を選ぶ理由

SSH・リモート接続

scp は、長年にわたって「安全で簡単なファイル転送コマンド」として多くの Linux 利用者に使われてきました。
そのため「scp が非推奨と聞いたが、今まで通り使ってはいけないのか」「代わりに何を使えばいいのか」と迷っている人も多いはずです。

結論としては、用途に応じて SFTP か rsync を選べば、今までとほぼ同じ感覚で安全に運用できます。

なぜ scp は非推奨になったのか(要点だけ)

結論から言うと、scp が非推奨とされる理由は「危険だから」ではなく、「設計が古く、今の運用に合わなくなったから」です。

scp は SSH を使ってファイルを転送する仕組みですが、内部では 古い SCP プロトコルを前提にしています。
このプロトコルは、ファイル名の解釈やエラー処理が曖昧で、意図しない挙動を招く余地がありました。

そのため OpenSSH では、
「新しい用途では scp を使わず、より安全に設計された仕組みを使ってほしい」
という立場を明確にしています。

重要なのは、今すぐ scp が使えなくなるわけではないという点です。
ただし、新しく手順を作る、長期運用を前提にするのであれば、
最初から別の選択肢を使ったほうが安全で確実、という判断がされています。

つまり scp は、

  • 今までの資産としては残っている
  • しかし「これから選ぶ標準」ではない

という位置づけに変わった、という理解が最も近いでしょう。

scp の代わりに何を使えばいいか(用途別)

結論はシンプルです。単純な転送なら SFTP、運用や同期なら rsync
この2つを押さえておけば、scp の代替で困る場面はほぼありません。

まず、SFTP(SSH File Transfer Protocol)は、scp と同じく SSH を使ったファイル転送ですが、プロトコルとして明確に定義され、エラー処理や挙動が安定しています。
1ファイルや少数ファイルを安全に送る用途であれば、scp から最も違和感なく移行できます。

一方、rsync は「コピー」というより 同期ツールです。
差分だけを転送できるため、ファイル数が多い場合や、定期的な転送・バックアップでは圧倒的に効率が良くなります。

考え方としては、

  • scp を使っていた理由が「手軽さ」なら SFTP
  • scp を使っていた理由が「運用・自動化」なら rsync

と分けると判断しやすいです。

scp しか知らなかった場合でも、
「SFTP は scp の延長線上」「rsync は一段上の運用向け」
と捉えれば、覚える負担はそれほど大きくありません。

scp から SFTP への置き換えイメージ

scp を普段使いしてきた人にとって、最も心理的なハードルが低い代替手段が SFTPです。
理由は単純で、「やっていることがほぼ同じ」だからです。

scp でよくある使い方は、
「ローカルからサーバーへファイルを送る」「サーバーから持ってくる」
この2パターンがほとんどでしょう。

SFTP でも考え方は変わりません。
違うのは、1コマンドで完結するか、接続して操作するかだけです。

SFTP は SSH 接続後に、

  • put(アップロード)
  • get(ダウンロード)

という直感的なコマンドを使って転送します。
scp のようにオプションやパス指定を一発で書かなくても、対話的に安全確認しながら操作できるのが特徴です。

特に、

  • ファイル名を間違えたくない
  • 転送先を確認しながら作業したい
  • 手作業が中心で自動化していない

こうしたケースでは、scp から SFTP に置き換えるだけで十分なことが多いです。

「scp を少し丁寧に、安全寄りにしたもの」
それが SFTP だと考えると、違和感なく移行できるはずです。

rsync を選ぶべきケースとは

scp や SFTP が「その場でファイルを送る道具」だとすると、rsync は運用を前提にした転送ツールです。
scp を使ってきた中で、少しでも「面倒だな」「無駄が多いな」と感じたことがあるなら、rsync を選ぶ価値があります。

rsync が強いのは、差分転送です。
すでに存在するファイルは再送せず、変更があった部分だけを転送するため、ファイル数が多いほど効率の差がはっきり出ます。

特に向いているのは、次のようなケースです。

  • ファイル数が多いディレクトリを転送している
  • 定期的に同じ場所へアップロードしている
  • バックアップやデプロイ作業をしている

こうした用途で scp を使い続けると、
「毎回全部コピーしている」「転送時間が読めない」
といった問題が出やすくなります。

rsync はコマンドこそ少し長くなりますが、
一度書いたものをそのまま使い回せるのが大きな利点です。
cron やスクリプトと組み合わせれば、人の手を介さない安定した運用も可能になります。

scp から一段ステップアップして、
「作業ではなく仕組みとして転送したい」
と考え始めたタイミングが、rsync を選ぶ適切なタイミングです。

まとめ:これからのおすすめ方針

Linux コマンド一覧 を起点に整理すると、scp の代替は SFTP か rsync のどちらかで十分です。

結論をもう一度まとめると、

  • 新しく覚えるなら scp ではなく SFTP / rsync
  • 単発・手作業中心なら SFTP
  • 同期・バックアップ・自動化なら rsync

scp は今すぐ使えなくなるわけではありません。
ただし、これから手順書を書く、運用を長く続けるのであれば、
最初から現行の推奨手段を選ぶ方が、将来の手戻りが少なくなります。

rsync を使う場面が増えそうであれば、
差分転送や基本オプションを整理した
rsync 使い方
もあわせて確認しておくと安心です。

「今まで scp で困っていなかった」人ほど、
用途を意識して選び直すだけで、転送作業はもっと楽になります。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする