scp コマンド(Linux,macなど)

SCPコマンドを説明 IT

何かと使いやすいscpコマンド。

SCPコマンドは、ssh接続して、コピーするコマンドです。

SCPは、Secure Copy Protocol として覚えておくと忘れ難いです。

環境

多分環境で大きな違いはないと思いますが、念のため記載。

  • macOS 15.2
  • macターミナル(コマンドラインツール)として、iTerm2を利用

scpコマンドの例

どれがわかりやすいか分かりませんが、どれかがピンとくる例だったら良いなと、たくさん書いてみようかと思います。

前提

  • リモートホストに接続ポートを指定(-Pを指定。Pは大文字)
  • 公開鍵認証(-iを指定)

ローカルのファイルをscpで、アップロードするコマンドの例

例1.コマンドのイメージ

spc [オプション] A B

オプションを指定して、AをBに、コピー(SCP)する、といった感じです。

~ % scp -P 接続ポート -i 秘密鍵 コピー元ローカルのファイル 接続先ユーザー@ホスト:コピー先のサーバーパス

例2.xserver利用を想定

xserver(参考情報:SSH設定)の利用を想定。

~ % scp -P 10022 -i .ssh/サーバーID.key コピー元ローカルのファイル サーバーID@サーバーID.xsrv.jp:/home/サーバID/任意のパス
もっと具体的に

サーバーID=xsample

秘密鍵=/User/macuser/.ssh/サーバーID.key にあるということ。

~ % scp -P 10022 -i .ssh/xsample.key /Users/macuser/send.txt xsample@xsample.xsrv.jp:/home/xsample/任意のパス

ローカルのディレクトリをscpで、アップロードするコマンドの例

ディレクトリは、-rオプション

すべてのサブディレクトリを含むディレクトリを再帰的にコピーの際は、-rオプションを利用する。

scp -r -P10022 -i .ssh/xsample.key /Users/macuser/senddir xsample@xsample.xsrv.jp:/home/xsample

ローカルのディレクトリsenddirから配下を、リモートの/home/xsampleにコピーする、といった具合です。

xserverのアップロード制限をSCPで回避できる

xserverだとコントロールパネルからサーバーにファイルアップロードができるが、容量制限があるため、大容量はアップロードできない。このため、SCPコマンを利用して大容量のファイルをアップロードできる。

SFTPと比べSCPの方が高速

SFTPと同様にSSHによる暗号化通信が採用されているので、セキュリティ面で信頼性の高いファイル転送プロトコルです。

SFTPに比べて通信速度が高速です。

SCPを利用する場合はUNIX系のシェルが備えられている必要がありますが、ウェブサーバーを構築する際はほとんどにシェルが搭載されているので、環境を意識することは少ないです。

タイトルとURLをコピーしました