scpコマンドでターミナル接続先のリモートファイルをローカルにダウンロードする方法

sshコマンドを使ってSSHログインをして、その先のファイルをローカルにダウンロードしたいことがあり、方法を調べました。
FTPソフトが使えると視覚的にも非常に分かりやすいのですが、どうしてもそれはできない事情もあり、仕方なくターミナルで行いました。
scpコマンド
scpは「Secure Copy」の略でリモートマシンとローカルマシン間でファイルやフォルダをコピーしたり、リモートマシン同士でファイル・フォルダをコピーできます。
通信にはsshコマンドと同じ認証を使用するので、SSH接続をできるようにしておく必要があります。
$ scp [オプション] [コピー元のパス] [保存先のパス]リモートパスの指定には下記の形式を使います。
これはsshコマンドを使うときと一緒です。
[ユーザー名]@[サーバーのホスト名かIPアドレス]:[パス]オプション
オプションは下記の通りでフォルダごとダウンロードしたい場合は「-r」オプションを付けます。
| オプション | 内容 |
|---|---|
| -i [鍵ファイルのあるパス] | SSH接続時に使用する鍵ファイルのあるパスを指定する |
| -r | ディレクトリごとコピーする |
| -P [ポート番号] | SSHのポートを変更している場合などに接続に使用するポートを指定する |
| -p | コピー元のタイムスタンプやパーミッションを保持する |
ローカルのカレントディレクトリにコピーしたい場合は省略も可能
リモートのファイルをローカルのカレントディレクトリにコピーしたい場合は、ローカルのパス入力は省略可能です。
$ scp [オプション] [コピー元のパス] これでカレントディレクトリにコピーされます。
ローカルからリモートへのアップロードも可能
ローカルのパスを先に入力して、後ろにリモートのパスを入力すればアップロードも可能です。
パスの入力の前後を間違えると反対の作業をしてしまうので注意が必要です。


Vue CLIをインストールしたのに「command not found: vue」と表示されてしまう場合の対処法
選択テキストをHTMLタグですぐ囲めるようになるVisual Studio Code拡張機能「htmltagwrap」
サーバーのアップロードファイルの最大容量の確認と変更方法
ダミーとして使うURLは適当に入力せず、決まったものを使うようにしよう
Dashで「Secure Input is Enabled」と表示される場合の対処法
Nuxt.jsの「layouts」を使用してレイアウトの共通化を行う方法|Nuxt.jsの基本
Visual Studio Codeの拡張機能「Trailing Spaces」でコードの中にある余計なスペースを表示する
Visual Studio Codeでショートカットキーを変更する方法
「Dart Sass」「LibSass」「Ruby Sass」などSassの種類や記法に関するまとめ
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
ウェブ開発時のテスト環境と本番環境の取り違えを防ぐChrome拡張機能「Environment Marker」
【2026年版】Karabiner-Elementsで実現する右commandキー活用のススメ
Bartender ProのTop Shelf機能でできること
高機能なスクリーンショットアプリ「CleanShot X」
macOSの効率化に関するDiscordコミュニティ「CMD-F」を立ち上げました
1Passwordの開発者向け機能(SSH Agent / Environments / 1Password CLI / Developer Watchtower)
Default Folder Xで保存ダイアログ内のファイルリストにフォーカスする方法
Obsidianで整理した知識をAnkiで定着させる方法
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」