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 で困っていなかった」人ほど、
用途を意識して選び直すだけで、転送作業はもっと楽になります。
