sftp, это интерактивная программа для передачи файлов, похожая на ftp(1), которая осуществляет все операции через зашифрованные средства передачи ssh(1). sftp также может использовать много таких возможностей ssh, как аутентификация с публичным ключем и сжатие. sftp подключается и регистрируется на указанном host, а затем переходит в интерактивный командный режим.
Другой вариант использования позволяет получать файлы автоматически, если используется не интерактивная аутентификация; в противном случае это становится возможно после того, как осуществлена интерактивная аутентификация.
Ещё один способ позволяет sftp-клиенту начать работу в заданном удалённом каталоге.
Распознаются следующие опции:
-bbatchfile
Пакетный режим прочитывает набор команд вместо stdin из входного batchfile. Так как данная опция подразумевает недостаток внимания со стороны пользователя, то должна использоваться в сочетании с не интерактивной аутентификацией. При обнаружении ошибок в выполнении любой из следующих команд: get, put, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd и lmkdir, sftp прервёт свою работу. Отмены выполнения, вследствие возникновения ошибки, можно избежать, предварив команду символом "-" (например, -rm /tmp/blah* ).
-ossh_option
Может быть использована для передачи опций, в формате используемом в ssh_config(5), напрямую к ssh(1). Полезно для указания опций для которых отсутствует отдельный флаг командной строки sftp. Например, для указания альтернативного порта используйте: sftp -oPort=24.
-ssubsystem | sftp_server
Указывает подсистему SSH2 или путь для sftp-сервера на удалённой машине. Указание пути полезно при использовании sftp поверх протокола версии 1 или когда удалённый sshd не имеет сконфигурированной sftp-подсистемы.
-v
Повышает уровень отладки. Этот параметр также передается к ssh.
-Bbuffer_size
Задаёт размер буфера, который используется sftp при передаче файлов. Буферы большего размера требуют меньше обращений туда и обратно за счёт более высокого потребления памяти. Значение по умолчанию 32768 байт.
-С
Задействует сжатие (при помощи флага ssh -С).
-Fssh_config
Задаёт альтернативный пользовательский файл конфигурации для ssh. Эта опция передаётся к ssh напрямую.
-Psftp_server path
Подключает напрямую к локальному серверу sftp (скорее, чем через ssh). Эта опция полезна для отладки клиента и сервера.
-Rnum_requests
Указывает, как много запросов может выделяться в любой момент. Увеличение этого может слегка повысить скорость передачи файлов, но вызовет большее потребление памяти. По умолчанию выделяется 16 запросов.
-Sprogram
Имя программы (program), используемой для шифрования соединения. Программа должна распознавать опции ssh(1).
-1
Указывает использовать протокол версии 1.
ИНТЕРАКТИВНЫЕ КОМАНДЫ
Пребывая в интерактивном режиме sftp понимает набор команд, аналогичный командам ftp(1). Команды являются нечувствительными к регистру букв, и имена путей, если они содержат пробелы, могут быть заключены в кавычки.
bye
Выйти из sftp.
cdpath
Изменит удаленный каталог к path.
lcdpath
Изменит локальный каталог к path.
chgrpgrppath
Изменяет идентификатор группы файла path в значение grp. grp должен быть цифровым GID.
chmodmodepath
Изменяет права доступа файла path в mode.
chownownpath
Изменяет владельца группы файла path в значение own. own должен быть цифровым UID.
exit
Выйти из sftp.
get [flags] remote_path [local_path]
Получает remote_path и сохраняет его на локальной машине. Если имя локального пути не указано, то ему назначается имя, аналогичное имени на удаленной машине. Если указан флаг -P, то будут скопированы полные права доступа и время доступа к файлу.
help
Печатает справочную информацию.
lls [ls-options [path]]
Отображает либо содержимое локального каталога path, либо текущего каталога, если path не указан.
lmkdirpath
Создать локальный каталог указанный в path.
lnoldpathnewpath
Создать символическую ссылку от oldpath к newpath.
lpwd
Сообщить имя локального рабочего каталога.
ls [flags] [path]
Отображает либо содержимое каталога path на удаленной машине, либо текущего каталога, если путь не указан. Если указан флаг -l, то отображается дополнительная информация, включая права доступа и права владения.
lumaskumask
Установить локальную umask в значение umask.
mkdirpath
Создать удаленный каталог заданный в path.
progress
Отобразить индикатор прогресса.
put [flags] local-path [remote-path]
Переносит local-path и сохраняет его на удаленной машине. Если имя пути на удаленной машине не указано, то будет назначено тоже-самое имя, как на локальной машине. Если указан флаг -P, то будут скопированы полные права доступа и время доступа к файлу.
pwd
Показать имя удаленного рабочего каталога.
quit
Выйти из sftp.
renameoldpathnewpath
Переименовать удаленный файл из oldpath в newpath.
rmdirpath
Переместить удаленный каталог указанный в path.
rmпуть
Удалить удаленный файл указанный в пути.
symlinkoldpathnewpath
Создать символическую ссылку из oldpath к newpath.