sftp — OpenSSH secure file transfer

SYNOPSIS

    sftp [-46AaCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_path] [-F ssh_config]
         [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-R num_requests]
         [-S program] [-s subsystem | sftp_server] destination

DESCRIPTION

sftp は、ftp に似たファイル転送プログラムで、すべての操作を暗号化された ssh トランスポート上で行なう。 また、公開鍵認証や圧縮など、ssh の多くの機能を使用することもできる。

宛先は [user@]host[:path] または sftp://[user@]host[:port][/path] という形式の URI として指定することができる。

宛先にパスが含まれ、それがディレクトリでない場合、非対話型認証方法が使用されていれば sftp は自動的にファイルを取得し、それ以外の場合は、対話型認証に成功した後に取得する。

パスが指定されていない場合、またはパスがディレクトリの場合、sftp は指定されたホストにログイン して対話型コマンドモードに入り、リモートディレクトリが指定されている場合はそこに変更する。 オプションの末尾のスラッシュを使用すると、パスをディレクトリとして解釈するように強制できる。

宛先の形式は、パス名やポート番号からホスト名を区切るためにコロン文字を使用するため、IPv6アドレスは曖昧さを避けるために角括弧で囲む必要がある。

オプションは次のとおり:

-4
強制的に IPv4 アドレスのみを使用する
-6
強制的に IPv6 アドレスのみを使用する
-A
リモートシステムに ssh-agent のフォワーディングを許可する。デフォルトは、認証エージェントにフォワードしない。
-a
既存のファイルの部分的または完全なコピーを上書きするのではなく、中断された転送を継続するように試みる。 部分的な内容が転送されているものと異なる場合、結果のファイルが破損している可能性が高い。
-B buffer_size
sftp がファイル転送時に使用するバッファのサイズを指定する。 バッファが大きいと、ラウンドトリップの回数が減るが、その代 わりにメモリの消費量が多くなる。 既定値は 32768 バイトである。
-b batchfile
バッチモードは、標準入力ではなく、入力バッチファイルから一連のコマンドを読み取る。 ユーザとの対話がないため、接続時にパスワードを入力する必要をなくすために、 非対話型認証と組み合わせて使用する必要がある (詳細については、 sshd および ssh-keygen を参照)。
sftp は、get、put、reget、reput、rename、ln、rm、mkdir、chdir、ls、lchdir、chmod、chown、chgrp、lpwd、df、 symlink、および lmkdir のいずれかのコマンドが失敗すると中断される。
エラー時の終了は、コマンドの前に '-' 文字を付けることでコマンドごとに抑制できる (たとえば、-rm /tmp/blah* など)。 コマンドのエコーは、コマンドの前に '@' 文字を付けることで抑制できる。 これら2つの接頭辞は、例えば -@ls /bsd のように、任意の順序で組み合わせることができる。
-C
圧縮を有効にする (ssh の -C フラグを使用する)。
-c cipher
データ転送を暗号化するために使用する暗号を選択する。 このオプションは、ssh に直接渡される。
-D sftp_server_path
(ssh 経由ではなく) ローカルの sftp サーバに直接接続する。 このオプションは、クライアントとサーバをデバッグする際に便利な場合がある。
-F ssh_config
ssh 用の代替のユーザごとの構成ファイルを指定する。 このオプションは、直接 ssh に渡される。
-f
転送後すぐにファイルをディスクにフラッシュするように要求する。 ファイルをアップロードする場合、この機能は、サーバーが "fsync@openssh.com" 拡張を実装している場合にのみ有効になる。
-i identity_file
公開鍵認証用の ID (秘密鍵) を読み込むファイルを選択する。このオプションは ssh に直接渡される。
-J destination
最初に destination で指定されたジャンプホストに sftp 接続を行い、そこから最終的な宛先への TCP 転送を確立することで、ターゲットホストに接続する。 複数のジャンプホップをカンマ文字で区切って指定することができる。 これは、ProxyJump 構成ディレクティブを指定するためのショートカットである。 このオプションは、直接 ssh に渡される。
-l limit
使用帯域を指定した Kbit/s に制限する。
-N
静粛モードを無効にする。例えば、-b フラグによって設定された暗黙の静粛モードを上書きする。
-o ssh_option
ssh_config で使用される形式で ssh にオプションを渡すために使用できる。 これは、別の sftp コマンドライン・フラグがないオプションを指定する場合に便利である。 例えば、代替ポートを指定するには、 sftp -oPort=24 を使用する。 以下に示すオプションの詳細と、指定可能な値については、ssh_config を参照。
option list
                  AddressFamily
                  BatchMode
                  BindAddress
                  BindInterface
                  CanonicalDomains
                  CanonicalizeFallbackLocal
                  CanonicalizeHostname
                  CanonicalizeMaxDots
                  CanonicalizePermittedCNAMEs
                  CASignatureAlgorithms
                  CertificateFile
                  ChallengeResponseAuthentication
                  CheckHostIP
                  Ciphers
                  Compression
                  ConnectionAttempts
                  ConnectTimeout
                  ControlMaster
                  ControlPath
                  ControlPersist
                  GlobalKnownHostsFile
                  GSSAPIAuthentication
                  GSSAPIDelegateCredentials
                  HashKnownHosts
                  Host
                  HostbasedAuthentication
                  HostbasedKeyTypes
                  HostKeyAlgorithms
                  HostKeyAlias
                  Hostname
                  IdentitiesOnly
                  IdentityAgent
                  IdentityFile
                  IPQoS
                  KbdInteractiveAuthentication
                  KbdInteractiveDevices
                  KexAlgorithms
                  LogLevel
                  MACs
                  NoHostAuthenticationForLocalhost
                  NumberOfPasswordPrompts
                  PasswordAuthentication
                  PKCS11Provider
                  Port
                  PreferredAuthentications
                  ProxyCommand
                  ProxyJump
                  PubkeyAcceptedKeyTypes
                  PubkeyAuthentication
                  RekeyLimit
                  SendEnv
                  ServerAliveInterval
                  ServerAliveCountMax
                  SetEnv
                  StrictHostKeyChecking
                  TCPKeepAlive
                  UpdateHostKeys
                  User
                  UserKnownHostsFile
                  VerifyHostKeyDNS
-P port
リモートホストの接続先ポートを指定する。
-p
転送された元のファイルの変更時間、アクセス時間、およびモードを保持する。
-q
クワイエットモード: ssh からの警告および診断メッセージだけでなく、プログレスメーターを無効にする。
-R num_requests
一度に実行可能なリクエストの数を指定する。これを増やすと、ファイル転送速度がわずかに向上するが、メモリ使用量が増加する。既定値は 64 の要求数である。
-r
アップロードおよびダウンロード時にディレクトリ全体を再帰的にコピーする。sftp は、ツリーの走査で検出されたシンボリックリンクを追跡しないことに注意。
-S program
暗号化された接続に使用するプログラムの名前。このプログラムは、ssh オプションを理解する必要がある。
-s subsystem | sftp_server
SSH2 サブシステム、またはリモートホスト上の sftp サーバのパスを指定する。パスは、リモートの sshd に sftp サブシステムが構成されていない場合に便利である。
-v
ロギングレベルを上げる。このオプションは、ssh にも渡される。

INTERACTIVE COMMANDS

対話型モードにすると、sftp は ftp と同様のコマンド一式を理解する。 コマンドは大文字と小文字を区別しない。 スペースを含むパス名は、引用符で囲む必要がある。 glob(3) で認識されるパス名内の特殊文字は、バックスラッシュ ('\') でエスケープする必要がある。

bye
sftpを終了する。
cd [path]
リモートのディレクトリをpathに変更する。 pathが指定されていない場合は、セッションが開始されたディレクトリに変更する。
chgrp [-h] grp path
ファイル path のグループを grp に変更する。 -h フラグが指定された場合、シンボリックリンクは辿られない。path は glob(7) 文字を含み、複数のファイルにマッチする可能性がある。
chmod [-h] mode path
ファイル path のパーミッションを mode に変更する。 -h フラグが指定された場合、シンボリックリンクは辿られない。 path はglob(7) 文字を含むことができ、複数のファイルにマッチすることができる。
chown [-h] own path
ファイル path のオーナーを自身に変更する。-hフラグが指定された場合、シンボリックファイルは辿られない。pathは、glob(7) 文字を含むことができ、複数のファイルにマッチすることができる。ownは、数字のUIDにしなければならない。
df [-hi] [path]
現在のディレクトリ (または指定された場合はパス) を保持しているファイルシステムの使用状況情報を表示する。 -h フラグが指定された場合、容量情報は「人間が読める」接尾辞を用いて表示される。 -i フラグを指定すると、容量情報に加えて inode 情報の表示も要求する。 このコマンドは、"statvfs@openssh.com" 拡張機能を実装しているサーバーでのみサポートされている。
exit
sftpを終了する。
get [-afpR] remote-path [local-path]
remote-path を取得し、ローカルマシンに保存する。 remote-path は glob(7) 文字を含むことができ、複数のファイルにマッチすることができる。 この場合、local-path が指定されていれば、local-path はディレクトリを指定しなければならない。
-a フラグが指定された場合、既存のファイルの部分的な転送の再開を試みる。 再開は、ローカルファイルの部分的なコピーがリモートコピーと一致することを前提とすることに注意。 リモートファイルの内容がローカルの部分コピーと異なる場合、 結果のファイルは破損している可能性が高い。
-f フラグが指定された場合、ファイル転送が完了した後に fsync(2) が呼び出され、 ファイルをディスクにフラッシュする。
-p フラグが指定された場合、ファイルのフルパーミッションとアクセスタイムもコピーされる。
-R フラグが指定されている場合は、ディレクトリが再帰的にコピーされる。 sftp は、再帰的な転送を実行する際にシンボリックリンクに従わないことに注意。
help
ヘルプテキストを表示する。
lcd [path]
ローカルディレクトリをpathに変更する。 pathが指定されていない場合は、ローカルユーザーのホームディレクトリに変更する。
lls [ls-options [path]]
path が指定されない場合,path またはカレントディレクトリのローカルディレクトリの 一覧を表示する.ls-options には,ローカルシステムの ls コマンドがサポートする任意のフラグを指定することができる.
lmkdir path
pathで指定されたローカルディレクトリを作成する。
ln [-s] oldpath newpath
oldpathからnewpathにリンクを貼る。-shラグが指定された場合シンボリックリンクを生成する。それ以外は、ハードリンクである。
lpwd
ローカルワーキングディレクトリを表示する。
ls [-1afhlnrSt] [path]
path が指定されない場合、path またはカレントディレクトリのリモートディレクトリの 一覧を表示する。path には glob(7) 文字が含まれ、複数のファイルにマッチすることがある。
以下のフラグが認識され、それに応じて ls の動作が変化する。
-1
一列の出力を生成します。
-a
ドット ('.') で始まるファイルをリストアップする。
-f   
ファイルをソートしない。 デフォルトのソート順は辞書順である。
-h
ロングフォーマットオプションと一緒に使う場合、単位を表すサフィックスを使用する。Byte, Kilobyte, Megabyte, Giga-byte, Terabyte, Petabyte, Exabyte などの単位を使用し、2の累乗で4桁以下にする (K=1024, M=1048576, など)。
-l
パーミッションや所有者情報など、追加の詳細を表示する。
-n
ユーザーとグループの情報を数値で表示した長いリストを作成する。
-r
一覧のソート順を逆にする。
-S
ファイル・サイズ別に一覧を並べ替える。
-t
最終更新時刻で一覧を並べ替える。
lumask umask
umask にローカルumaskをセットする。
mkdir path
指定されたpathにリモートディレクトリを作成する。
progress
プログレスメーターの表示をトグルする。
put [-afpR] local-path [remote-path]
local-path をアップロードし、リモートマシンに保存する。 local-path は glob(7) 文字を含むことができ、複数のファイルにマッチすることができる。 この場合、remote-path はディレクトリを指定しなければならない。
-a フラグが指定された場合、既存のファイルの部分的な転送の再開を試みる。 再開は、リモートファイルの部分コピーがローカルコピーと一致することを前提にしていることに注意。 ローカルファイルの内容がリモートのローカルコピーと異なる場合、 結果のファイルは破損している可能性が高い。
-f フラグが指定された場合、ファイル転送後に fsync(2) を呼び出すようサーバに要求が送られる。 これは、"fsync@openssh.com" 拡張を実装しているサーバにのみ対応していることに注意。
-p フラグが指定された場合、ファイルのフルパーミッションとアクセスタイムもコピーされる。
-R フラグが指定されている場合は、ディレクトリが再帰的にコピーされる。 sftp は、再帰的転送の実行時にシンボリックリンクを追跡しないことに注意。
pwd
リモートワーキングディレクトリを表示する。
quit
sftpを終了する。
reget [-fpR] remote-path [local-path]
remote-pathのダウンロードをレジュームする。-aフラグをセットしたgetと等価である。
reput [-fpR] local-path [remote-path]
local-pathのアップロードをレジュームする。-aフラグをセットしたputと等価である。
rename oldpath newpath
oldpathからnewpathにリモートファイルをリネームする。
rm path
pathによって指定されたリモートファイルを削除する。
rmdir path
pathによって指定されたリモートディレクトリを削除する。
symlink oldpath newpath
oldpath から newpath にシンボリックリンクを生成する。
version
sftpプロトコルバージョンを表示する。
!command
ローカルシェルでコマンドを実行する。
!
ローカルシェルのエスケープ。
?
ヘルプの対義語。

SEE ALSO

ftp, ls, scp, ssh, ssh-add, ssh-keygen, ssh_config, glob(7), sftp-server, sshd

T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-filexfer-00.txt, January 2001, work in progress material.

External Link