【便利で簡単】scpによる安全なリモートファイルのコピー方法

scpによるコピー
  • このエントリーをはてなブックマークに追加
  • Pocket

scpを使うとsshを利用して安全にファイルをコピーして別サーバに持っていくことができる。

このページではscpの使い方についてお伝えしていこう。

scpコマンドとは?

sshを使った接続

「scp」コマンドは「Secure Copy」の略で、sshを使用してリモートホストとローカルホスト間の通信を暗号化したうえで、ファイルをコピー送信するコマンドである。

OpenSSHをインストールすると自動的についてくるので、叩けば使えるはずだ。

scpは、SSH接続を利用するため「ユーザ認証」「ファイルをやりとりするときの情報」これらが共に暗号化される。そのため非常にセキュアだ。

ちなみに

リモートホストとローカルホストの間でファイルコピーを行うコマンドとして「rcp」というコマンドも存在するが通信が暗号化されない。セキュリティ的に脆弱なので使用しないようにしよう。

サーバと安全にファイルをやりとりするには、暗号化処理がほどこされるコマンドを使用することを念頭においておきたい。

書式について

リモートからローカルにコピーする

$ scp <ユーザ名>@<アドレス>:<パス> <ローカルのファイルパス>

ローカルからリモートにコピーする

$ scp <ローカルのファイルパス> <ユーザ名>@<アドレス>:<パス>

となっている。リモートとローカルの区別が若干ややこしいが

$ scp <コピー元> <コピー先>

となっており。要は「cp」コマンドと同じ要領である。

基本的に一部同じオプションが通用する。

ディレクトリ単位でのコピーで使用される「-r」オプションなどだ。

基本的な使い方

SSHを使用しているためリモートホストからローカルホストへファイルをコピーする場合、初めて接続するホストの場合、SSH接続時と同じくホスト認証とユーザ認証がおこなわれる。

$ scp ken@192.168.12.1:/home/hoge/testfile.txt .

scp-r_l

次からはパスワード入力画面が直接あらわれる。

$ scp ./testfile.txt hoge@192.168.12.1:/home/hoge

scp-l_r

公開鍵認証をしている場合でも同じ要領でファイルのやり取りが可能だ。基本的に「~/.ssh」のしたをデフォルトで参照するようになっている。明示的に秘密鍵のファイルを指定したい場合は「-i」オプションを使用する。

$ scp -i ~/.ssh/id_ecdsa testfile.txt ken@192.168.12.200:/home/hoge/

主なオプションについて

-4

通信にipv4アドレスを使用する

-6

通信にipv6アドレスを使用する

-C

通信を圧縮

-p

パーミッション情報などをなるべくのこしてコピー

-q

経過などを表示しない、静に動作する

-r

再帰的コピー、ディレクトリごとコピーするときに使用する。

-i

秘密鍵を明示的に指定する。指定がなかった場合「~/.ssh」を参照する

まとめ

このページではscpでのコピー方法についてお伝えした。SSHに付随してくる便利な機能だ。

参考にしていただければと思います。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*

ゼロからエンジニアを目指す方へ
短期間でエンジニアになる方法

必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け

資料を見てみる