scp — OpenSSH セキュアなファイルコピー
概要
scp [-346ABCOpqRrsTv] [-c 暗号] [-D sftp_server_path] [-F ssh_config] [-i identity_file]
[-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] [-X sftp_option] ソース
... ターゲット
説明
scp は、ネットワーク上のホスト間でファイルをコピーします。
scp は、ssh(1) 接続を介して SFTP プロトコルを使用してデータ転送を行い、ログインセッションと同じ認証とセキュリティを提供します。
scp は、認証に必要な場合にパスワードまたはパスフレーズを要求します。
ソースとターゲットは、ローカルパス名、オプションのパスを含むリモートホスト [user@]host:[path]、または scp://[user@]host[:port][/path] の形式の URI として指定できます。 ローカルファイル名を絶対パスまたは相対パスを使用して明示的に指定すると、scp はファイル名をホスト指定子として扱うことはありません(ファイル名に「:」が含まれている場合)。
URI 形式を使用して 2 つのリモートホスト間でコピーする場合、-R オプションが使用されている場合は、ターゲットにポートを指定できません。
オプションは次のとおりです。
-3 2 つのリモートホスト間のコピーは、ローカルホストを介して転送されます。 これはデフォルトのモードですが、-R オプションも参照して、2 つのリモートホスト間でデータを直接コピーしてください。
-4 IPv4 アドレスのみを使用するように scp を強制します。
-6 IPv6 アドレスのみを使用するように scp を強制します。
-A ssh-agent(1) をリモートシステムに転送できるようにします。 デフォルトでは、認証エージェントを転送しません。
-B バッチモードを選択します(パスワードまたはパスフレーズの入力を求めません)。
-C 圧縮を有効にします。 -C フラグを [ssh]({filename}../../ssh)(1) に渡して、圧縮を有効にします。
-c 暗号
データ転送の暗号化に使用する暗号を選択します。 このオプションは、[ssh]({filename}../../ssh)(1) に直接渡されます。
-D sftp_server_path
[ssh]({filename}../../ssh)(1) を介してリモートホストに接続するのではなく、ローカル SFTP サーバープログラムに直接接続します。 このオプションは、クライアントとサーバーのデバッグに役立つ場合があります。
-F ssh_config
ssh の代替のユーザーごとの構成ファイルを指定します。 このオプションは、[ssh]({filename}../../ssh)(1) に直接渡されます。
-i identity_file
パブリックキー認証で使用する ID(秘密鍵)を読み取るファイルを選択します。 このオプションは、[ssh]({filename}../../ssh)(1) に直接渡されます。
-J destination
ターゲットホストに接続するには、まず destination で記述されたジャンプホストへの scp 接続を確立し、次にそこから最終的な宛先への TCP フォワーディングを確立します。 複数のジャンプホップは、カンマで区切って指定できます。 これは、ProxyJump 構成ディレクティブを指定するショートカットです。 このオプションは、[ssh]({filename}../../ssh)(1) に直接渡されます。
-l limit
使用する帯域幅を Kbit/s で指定します。
-O
ファイル転送には SFTP プロトコルの代わりにレガシー SCP プロトコルを使用します。SCP プロトコルを使用することを強制する必要があるのは、SFTP を実装していないサーバーの場合、特定のファイル名ワイルドカード パターンの後方互換性のため、および「~」プレフィックスを使用してパスを拡張する場合です(古い SFTP サーバーの場合)。
-o ssh_option
ssh に ssh_config(5) で使用される形式でオプションを渡すために使用できます。これは、個別の scp コマンドライン フラグがないオプションを指定する場合に役立ちます。以下にリストされているオプションと、その可能な値の完全な詳細については、ssh_config(5) を参照してください。
オプション
AddKeysToAgent
AddressFamily
BatchMode
BindAddress
BindInterface
CASignatureAlgorithms
CanonicalDomains
CanonicalizeFallbackLocal
CanonicalizeHostname
CanonicalizeMaxDots
CanonicalizePermittedCNAMEs
CertificateFile
ChannelTimeout
CheckHostIP
Ciphers
ClearAllForwardings
Compression
ConnectTimeout
ConnectionAttempts
ControlMaster
ControlPath
ControlPersist
DynamicForward
EnableEscapeCommandline
EnableSSHKeysign
EscapeChar
ExitOnForwardFailure
FingerprintHash
ForkAfterAuthentication
ForwardAgent
ForwardX11
ForwardX11Timeout
ForwardX11Trusted
GSSAPIAuthentication
GSSAPIDelegateCredentials
GatewayPorts
GlobalKnownHostsFile
HashKnownHosts
Host
HostKeyAlgorithms
HostKeyAlias
HostbasedAcceptedAlgorithms
HostbasedAuthentication
Hostname
IPQoS
IdentitiesOnly
IdentityAgent
IdentityFile
IgnoreUnknown
Include
KbdInteractiveAuthentication
KbdInteractiveDevices
KexAlgorithms
KnownHostsCommand
LocalCommand
LocalForward
LogLevel
LogVerbose
MACs
NoHostAuthenticationForLocalhost
NumberOfPasswordPrompts
ObscureKeystrokeTiming
PKCS11Provider
PasswordAuthentication
PermitLocalCommand
PermitRemoteOpen
Port
PreferredAuthentications
ProxyCommand
ProxyJump
ProxyUseFdpass
PubkeyAcceptedAlgorithms
PubkeyAuthentication
RekeyLimit
RemoteCommand
RemoteForward
RequestTTY
RequiredRSASize
RevokedHostKeys
SecurityKeyProvider
SendEnv
ServerAliveCountMax
ServerAliveInterval
SessionType
SetEnv
StdinNull
StreamLocalBindMask
StreamLocalBindUnlink
StrictHostKeyChecking
SyslogFacility
TCPKeepAlive
Tag
Tunnel
TunnelDevice
UpdateHostKeys
User
UserKnownHostsFile
VerifyHostKeyDNS
VisualHostKey
XAuthLocation
-P port
リモート ホストに接続するポートを指定します。このオプションは大文字の「P」で記述されていることに注意してください。なぜなら、「-p」は、ファイルのタイムスタンプとモード ビットを保持するためにすでに予約されているからです。
-p
ソース ファイルからの変更時刻、アクセス時刻、およびファイル モード ビットを保持します。
-q
静音モード:進行状況メーターと [ssh]({filename}../../ssh)(1) からの警告および診断メッセージを無効にします。
-R
2 つのリモート ホスト間のコピーは、デフォルトではローカル ホストを介して転送されます。このオプションでは、代わりに、コピーを 2 つのリモート ホスト間で、ソース ホストに接続し、そこで scp を実行することにより行います。これは、ソース ホストで実行される scp がパスワードを必要とせずに宛先ホストに認証できる場合に必要です。
-r ディレクトリ全体を再帰的にコピーします。 scp は、ツリー走査中に遭遇したシンボリックリンクをたどります。
-S program
暗号化された接続に使用するプログラムの名前。このプログラムは、[ssh]({filename}../../ssh)(1) オプションを理解している必要があります。
-T 厳密なファイル名チェックを無効にします。 デフォルトでは、リモートホストからローカルディレクトリにファイルをコピーするとき、scp は受信したファイル名がコマンドラインで要求されたファイル名と一致することを確認し、リモート側が予期しないまたは不要なファイルを送信するのを防ぎます。 さまざまなオペレーティングシステムやシェルがファイル名ワイルドカードを解釈する方法の違いにより、これらのチェックによって、必要なファイルが拒否されることがあります。 このオプションは、これらのチェックを無効にします。ただし、サーバーが予期しないファイル名を送信しないことを完全に信頼する必要があります。
-v 詳細モード。 scp と [ssh]({filename}../../ssh)(1) で、進行状況に関するデバッグメッセージが出力されます。 これは、接続、認証、および構成の問題のデバッグに役立ちます。
-X sftp_option
SFTP プロトコルの動作の側面を制御するオプションを指定します。 有効なオプションは次のとおりです。
nrequests=value
ダウンロードまたはアップロード中に、同時に進行中の SFTP 読み取りまたは書き込みリクエストの数を制御します。 デフォルトでは、64 個のリクエストを同時にアクティブにすることができます。
buffer=value
ダウンロードまたはアップロード中に使用される、単一の SFTP 読み取り/書き込み操作の最大バッファーサイズを制御します。 デフォルトでは、32KB のバッファーが使用されます。
終了ステータス
scp ユーティリティは、成功した場合は 0 で終了し、エラーが発生した場合は 0 より大きい値で終了します。
関連項目
sftp(1)、ssh(1)、ssh-add(1)、ssh-agent(1)、ssh-keygen(1)、ssh_config(5)、sftp-server(8)、sshd(8)
歴史
scp は、カリフォルニア大学のリージェンツから提供された BSD ソースコードの rcp プログラムに基づいています。
OpenSSH 9.0 以降、scp はデフォルトで SFTP プロトコルを使用して転送を行います。
著者
Timo Rinne <_> Tatu Ylonen <_>
注意点
レガシー SCP プロトコル ( -O フラグで選択) では、リモートユーザーのシェルで glob(3) パターンマッチングを実行する必要があります。 これには、リモートシェルで特別な意味を持つ引用符などの文字を慎重に引用する必要があります。