EN JA
SFTP(1)
SFTP(1) FreeBSD General Commands Manual SFTP(1)

名称

sftp安全なファイル転送プログラム

書式

sftp [ -1246Cpqrv][ -B  buffer_size][ -b  batchfile][ -c  cipher][ -D  sftp_server_path][ -F  ssh_config][ -i  identity_file][ -l  limit][ -o  ssh_option][ -P  port][ -R  num_requests][ -S  program][ -s  subsystem |  sftp_serverhost

sftp [ user@] host[ : file ...]

sftp [ user@] host[ : dir[ /]]

sftp -b batchfile [ user@] host

解説

sftp は、 ftp(1) に似た対話的なファイル転送プログラムです。すべての操作は、 ssh(1) によって暗号化された通信路を経由しておこなわれます。 sftp では公開鍵認証や圧縮機能など、ssh の機能の多くを利用できます。 sftp は、指定された host に接続してログインしたあと、対話的なコマンドモードに入ります。

2 番目の使用形式では、対話的でない (訳注: ユーザがパスフレーズ等を入力する必要のない) 認証が使われている場合に自動的にファイルを取得します。そうでない場合は対話的な認証ののちにファイルを取得します。

3 番目の使用形式は、指定されたリモートディレクトリから sftp を開始します。

4 番目の使用形式は、 -b オプションをつかって自動化されたセッションを可能にします。そのような場合には、接続時にパスワードを入力する必要性を取り除くために非対話式の認証を設定することが必要です (詳細については sshd(8)ssh-keygen(1) を参照してください)。

いくつかの使用形式は、パス名からのホスト名を区切るためにコロン文字を使用するので、IPv6 アドレスは、曖昧さを避けるために角括弧で囲まれなければなりません。

オプションは、次の通りです:

-1
プロトコルバージョン 1 の使用を指定します。
-2
プロトコルバージョン 2 の使用を指定します。
-4
sftp が、IPv4 アドレスのみを使用すること強制します。
-6
sftp が、IPv6 アドレスのみを使用すること強制します。
-B buffer_size
sftp がファイル転送をおこなうさいのバッファサイズを指定します。バッファを大きくすると、往復 (round trip) が少なくなりますが、そのぶんメモリは余計に消費します。デフォルトの値は、32768 バイトです。
-b batchfile
バッチモードに入り、 標準入力 のかわりに指定された batchfile からコマンド列を読み込みます。これにはユーザが介入する余地がないので、このモードは対話的でない (訳注: ユーザがパスフレーズ等を入力する必要のない) 認証と組み合わせて使うべきでしょう。 batchfile を‘-’とすると、標準入力から読み込みます。 sftp は、以下のどれかのコマンドが失敗すると中断します: get, put, reget, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd, df, symlinklmkdir コマンド名の前にプレフィックス‘-’をつけることで、エラー時の強制終了を禁止することができます (例: -rm /tmp/blah*)。
-C
圧縮機能を使用可能にします (ssh の -C フラグを利用します)
-c cipher
データ転送を暗号化するために使用する方式 (cipher) を選択します。このオプションは、直接 ssh(1) に渡されます。
-D sftp_server_path
( ssh(1) を経由するのではなく) 直接ローカル sftp サーバに接続します。このオプションは、クライアントとサーバをデバッグする際に役に立ちます。
-F ssh_config
ssh(1) のための代わりのユーザ毎の設定ファイルを指定します。このオプションは、直接 ssh(1) に渡されます。
-i identity_file
公開鍵の認証のための identity (秘密鍵) が読み込まれるファイルを選択します。このオプションは、直接 ssh(1) に渡されます。
-l limit
使用される帯域幅を制限します、Kbit/s で指定されます。
-o ssh_option
ssh_config(5) で使用される形式で ssh に渡すオプションを使用することができます。これは、個別の sftp コマンド行フラグがない、オプションを指定するために役に立ちます。例えば、代わりのポートを使用するためには、次のように指定します: sftp -oPort=24。以下にリストされたオプションのすべての詳細とそれらの指定できる値については、 ssh_config(5) を参照してください。

AddressFamily
BatchMode
BindAddress
ChallengeResponseAuthentication
CheckHostIP
Cipher
Ciphers
Compression
CompressionLevel
ConnectionAttempts
ConnectTimeout
ControlMaster
ControlPath
ControlPersist
GlobalKnownHostsFile
GSSAPIAuthentication
GSSAPIDelegateCredentials
HashKnownHosts
Host
HostbasedAuthentication
HostKeyAlgorithms
HostKeyAlias
HostName
IdentityFile
IdentitiesOnly
IPQoS
KbdInteractiveAuthentication
KbdInteractiveDevices
KexAlgorithms
LogLevel
MACs
NoHostAuthenticationForLocalhost
NumberOfPasswordPrompts
PasswordAuthentication
PKCS11Provider
Port
PreferredAuthentications
Protocol
ProxyCommand
PubkeyAuthentication
RekeyLimit
RhostsRSAAuthentication
RSAAuthentication
SendEnv
ServerAliveInterval
ServerAliveCountMax
StrictHostKeyChecking
TCPKeepAlive
UsePrivilegedPort
User
UserKnownHostsFile
VerifyHostKeyDNS
-P port
リモートホストで接続するポートを指定します。
-p
元のファイルの更新時刻、アクセス時刻とモードを保持します。
-q
静かなモード: ssh(1) からの警告と診断メッセージと同様に進捗状況メータを無効にします。
-R num_requests
未解決の要求を同時に最大どれくらいまでおこなうかを指定します。この値を増やすとファイル転送速度が多少上がりますが、メモリを消費します。デフォルトは、32KB のバッファがある 8MB の未解決のデータのために提供される 256 の未解決の要求です。
-r
アップロードとダウンロードしているとき、すべてのディレクトリを再帰的にコピーします。 sftp は、ツリーの走査で遭遇するシンボリックリンクをたどらないことに注意してください。
-S program
暗号化された接続を使うための program (プログラム) を指定します。ここで使うプログラムは、 ssh(1) のオプションを受けつける必要があります。
-s subsystem | sftp_server
SSH2 のサブシステム、またはリモートホスト上にある sftp サーバへのパスを指定します。パス指定は、プロトコルバージョン 1 で sftp を使用するときや、リモートの sshd(8) に sftp サブシステムが設定されていないときなどに便利です。
-v
ログに残すレベルを変更します。このオプションは、ssh にも渡されます。

対話的コマンド

sftp の対話的コマンドモードでは、 ftp(1) に似たコマンドが使えます。これらのコマンドの大文字・小文字は区別されません。空白を含むパス名は引用符で囲む必要があります。パス名のなかに glob(3) によって認識される特殊文字が含まれているときは、それらをバックスラッシュ (‘\’) でエスケープする必要があります。
bye
sftp を終了します。
cd path
リモート側のカレントディレクトリを path に変更します。
chgrp grp path
path で指定されたファイルのグループを grp (グループ ID) に変更します。 pathglob(3) の特殊文字を含む場合は、複数のファイルを指定することができます。 grp (グループ ID) は、数値表現である必要があります。
chmod mode path
path で指定されたファイルのパーミッションを mode に変更します。 pathglob(3) の特殊文字を含む場合は、複数のファイルを指定することができます。
chown own path
path で指定されたファイルの所有者を own (ユーザ ID) に変更します。 pathglob(3) の特殊文字を含む場合は、複数のファイルを指定することができます。 own (ユーザ ID) は、数値表現である必要があります。
df [ -hi][ path]
カレントディレクトリ (または、指定された path) を保持しているファイルシステムのための使用情報を表示します。 -h フラグが指定されるなら、容量情報は、"人間に読み込み可能な"接尾辞を使用して表示されます。 -i フラグは、容量情報に加えて i ノード情報の表示を要求します。このコマンドは、“statvfs@openssh.com”拡張を実装するサーバでのみサポートされます。
exit
sftp を終了します。
get [ -aPpr] remote-path [ local-path]
remote-path (リモートパス名) のファイルを取得し、ローカルマシン上に置きます。 (訳注: ディレクトリを再帰的にまるごと get することはできません。) ローカルパス名が指定されていない場合、これはリモートマシン上でのファイル名と同じになります。 remote-path (リモートパス名) が glob(3) の特殊文字を含む場合は、複数のファイルを指定することができます。その場合、 local-path (ローカルパス名) を指定しているときは、 local-path は、ディレクトリ名である必要があります。

-a フラグが指定されるなら、既存のファイルの部分的な転送を再開することを試みます。再開は、ローカルファイルのあらゆる部分的なコピーとリモートのコピーと一致すると仮定されることに注意してください。リモートファイルが部分的なローカルのコピーと異なっているなら、結果ののファイルは、壊れていることになります。

-P または -p フラグのいずれかが指定されるなら、すべてのファイルのパーミッションとアクセス時刻もまたコピーされます。

-r フラグが指定されるなら、ディレクトリは、再帰的にコピーされます。 sftp は、再帰的な転送を実行するとき、シンボリックリンクをたどらないことに注意してください。

help
ヘルプを表示します。
lcd path
ローカル側のカレントディレクトリを path に変更します。
lls [ ls-options [ path]]
ローカルマシン上の path のディレクトリ一覧を表示します。 path の指定がなければ、カレントディレクトリの一覧を表示します。 ls-options ではローカルシステムの ls(1) コマンドでサポートされているフラグがすべて使えます。 pathglob(3) の特殊文字を含む場合は、複数のファイルを指定することができます。
lmkdir path
ローカルマシン上に path で指定されたディレクトリを作成します。
ln [ -s] oldpath newpath
oldpath (古いパス名) から newpath (新しいパス名) へのリンクを作成します。 -s フラグが指定されるなら、作成されるリンクは、シンボリックリンクで、そうでなければ、ハードリンクです。
lpwd
ローカルマシン上のカレントディレクトリ (ワーキングディレクトリ) を表示します。
ls [ -1afhlnrSt][ path]
リモートマシン上の path のディレクトリ一覧を表示します。 path の指定がなければ、カレントディレクトリの一覧を表示します。 pathglob(3) の特殊文字を含む場合は、複数のファイルを指定することができます。

以下のフラグを指定することで、 ls のふるまいを変えることができます:

-1
出力を 1 カラムのみにします。
-a
ドット (‘.’) で始まるファイルも表示します。
-f
ソートを禁止します。デフォルトでは、辞書順にソートされます。
-h
ロング形式のオプションで使用されると、次の単位接尾辞を使用します: サイズに対して 2 のべき乗を使用して 4 以下に桁数を縮小する順序で (Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte, Exabyte) バイト、キロバイト、メガバイト、ギガバイト、テラバイト、ペタバイトとエクサバイト (K=1024, M=1048576, など) です。
-l
所有者やパーミッションなど、詳細な情報も表示します。
-n
ユーザ ID およびグループ ID を数値で表示します。
-r
ソートの順序を逆にします。
-S
ファイルサイズでソートします。
-t
最終更新時刻でソートします。
lumask umask
ローカルマシン上の umask を umask に設定します。
mkdir path
リモートマシン上に path で指定されたディレクトリを作成します。
progress
プログレスバーの表示/非表示を切り換えます。
put [ -Ppr] local-path [ remote-path]
local-path (ローカルパス名) をアップロードして、リモートマシンにそれを格納します。リモートパス名が指定されてないなら、ローカルマシンの名前と同じ名前が与えられます。 local-path (ローカルパス名) は、 glob(3) 文字を含むことができ、複数のファイルとマッチすることができます。複数のファイルが指定され、 remote-path (リモートパス名) が指定されるなら、 remote-path (リモートパス名) は、ディレクトリを指定しなければなりません。

-P または -p フラグのいずれかが指定されるなら、すべてのファイルのパーミッションとアクセス時刻もまたコピーされます。

-r フラグが指定されるなら、ディレクトリは、再帰的にコピーされます。 sftp は、再帰的な転送を実行するとき、シンボリックリンクをたどらないことに注意してください。

pwd
リモートのワーキングディレクトリを表示します。
quit
sftp を終了します。
reget [ -Ppr] remote-path [ local-path]
remote-path (リモートパス) のダウンロードを再開します。 -a フラグの設定がある get と同等です。
rename oldpath newpath
リモートファイルの oldpath (古いパス名) を newpath (新しいパス名) に名前を変更します。 (訳注: ファイルやディレクトリを移動させることはできません。)
rm path
path によって指定されるリモートファイルを削除します。
rmdir path
path によって指定されるリモートディレクトを削除します。
symlink oldpath newpath
oldpath (古いパス名) から newpath (新しいパス名) へのシンボリックリンクを作成します。
version
sftp のプロトコルのバージョンを表示します。
! command
ローカルのシェルで、 command (コマンド) を実行します。
!
ローカルのシェルにエスケープします。
?
help と同義語です。

関連項目

ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), glob(3), ssh_config(5), sftp-server(8), sshd(8) T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-filexfer-00.txt, January 2001, work in progress material.
July 25, 2013 FreeBSD