Secure Copyscp)は、sftp同様、Secure Shell(ssh)に含まれるsshの機能を使ってセキュリティの高い(セキュアな)ファイル転送を行うコマンドの一つである。scpで使用される通信プロトコルは、Secure Copy Protocol(SCP)と呼ばれる。

SSHを介してファイル転送を行うプロトコルとしてはSSH File Transfer Protocol(以下SFTP)があり、両者はしばしば比較される。その際、SCPはより軽く、SFTPはより高機能と評されることがある[1]。2019年4月、OpenSSHの開発チームは「scpのプロトコルはもはや時代遅れで柔軟性がなく、修正が困難になっている」とし、SFTPやrsyncなど他のファイル転送プロトコルの使用を勧めている[2][3]。scpコマンド自体についても、プロトコルにSFTPを使用するオプションが追加されている[4]。その後、OpenSSH 9.0以降ではscpコマンドがSFTPプロトコルをデフォルトで使用するようになった。[5]

認証情報(たとえばパスワード認証なら、ユーザー名やパスワード)と、セッション中でやり取りされるデータとの両方ともが、暗号化されてネットワーク上を流れる。Unixで古くから使われているリモートファイル転送コマンドrcpRemote CoPy)のセキュアなバージョンといえる。コマンドラインの指定方法はrcpとほぼ同じである。rcpは暗号化などに対応しておらず、安全ではない。ある種のシステムではrcpという名前で起動しようとするとscpコマンドを実行する。

ssh-agentコマンドなどと組み合わせて利用すれば、コピー時に認証情報の入力が不要で、cpやrcp同様に利用できる。

「SCPが対応する、1ファイルの転送可能な最大サイズは4GB」と解説されることがあるが[6]、これは正確ではない。プロトコル自体にはファイルサイズ制限はなく、最大サイズはクライアントおよびサーバのソフトウェアとOS、そしてファイルシステムに依存する。例えば、OpenSSHでは実質上ファイルサイズの制限なく取り扱えるようになっている[7]

Windowsには、WinSCPというSCPを用いるGUI対応ソフトがある[8]

脚注 編集

  1. ^ 軽快なscpか高機能なsftp、sshサーバに向いているのは?”. ITmedia (2006年6月27日). 2015年6月6日閲覧。
  2. ^ OpenSSH 8.0” (英語). OpenSSH Release Notes (2019年4月17日). 2019年6月13日閲覧。
  3. ^ 末岡洋子 (2019年4月22日). “「OpenSSH 8.0/8.0p」リリース、scpプロトコルに関連した脆弱性を修正”. OSDN Magazine. OSDN株式会社. 2019年6月13日閲覧。
  4. ^ 末岡洋子 (2021年8月23日). “「OpenSSH 8.7」が公開”. OSDN Magazine. OSDN株式会社. 2021年8月28日閲覧。
  5. ^ OpenSSH 9.0 was released on 2022-04-08.”. 2024年3月11日閲覧。
  6. ^ 例として、WinSCP公式サイトのプロトコル比較。2016年2月11日時点のアーカイブ。
  7. ^ How the SCP protocol works”. Jan Pechanec (2007年7月9日). 2011年5月25日時点のオリジナルよりアーカイブ。2015年6月6日閲覧。
  8. ^ WinSCP https://winscp.net/eng/download.php

関連項目 編集