sftp: transferencia segura de archivos de OpenSSH
SINTAXIS
sftp [-46AaCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_command]
[-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port]
[-R num_requests] [-S program] [-s subsystem | sftp_server] [-X sftp_option] destination
DESCRIPCIÓN
sftp es un programa de transferencia de archivos, similar a ftp(1), que realiza todas las operaciones a través de un transporte ssh(1) cifrado. También puede utilizar muchas de las características de ssh, como la autenticación de clave pública y la compresión.
El destino se puede especificar ya sea como [user@]host[:path] o como una URI del formulario sftp://[user@]host[:port][/path].
Si el destino incluye una ruta y no es un directorio, sftp recuperará los archivos automáticamente si se utiliza un método de autenticación no interactivo; de lo contrario, lo hará después de una autenticación interactiva exitosa.
Si no se especifica ninguna ruta, o si la ruta es un directorio, sftp se conectará al host especificado y entrará en el modo de comando interactivo, cambiando al directorio remoto si se especificó uno. Se puede utilizar una barra diagonal final opcional para forzar que la ruta se interprete como un directorio.
Dado que los formatos de destino utilizan caracteres de dos puntos para delimitar los nombres de host de los nombres de ruta o los números de puerto, las direcciones IPv6 deben estar encerradas entre corchetes para evitar la ambigüedad.
Las opciones son las siguientes:
-4 Fuerza a sftp a utilizar solo direcciones IPv4.
-6 Fuerza a sftp a utilizar solo direcciones IPv6.
-A Permite el reenvío de ssh-agent(1) al sistema remoto. El valor predeterminado es no reenviar un
agente de autenticación.
-a Intenta continuar con las transferencias interrumpidas en lugar de sobrescribir las copias parciales o
completas existentes de los archivos. Si el contenido parcial difiere del que se está transfiriendo,
el archivo resultante probablemente se corromperá.
-B buffer_size
Especifica el tamaño del búfer que sftp utiliza al transferir archivos. Los búferes más grandes requieren menos viajes de ida y vuelta a costa de un mayor consumo de memoria. El valor predeterminado es 32768 bytes.
-b batchfile
El modo por lotes lee una serie de comandos de un archivo de entrada en lugar de de stdin. Dado que carece de interacción con el usuario, debe utilizarse en conjunto con la autenticación no interactiva para evitar la necesidad de introducir una contraseña en el momento de la conexión (consulte sshd(8) y ssh-keygen(1) para obtener más detalles).
Se puede utilizar un archivo por lotes de '-' para indicar la entrada estándar. sftp se abortará si alguno de los
siguientes comandos falla: get, put, reget, reput, rename, ln, rm, mkdir, chdir, ls,
lchdir, copy, cp, chmod, chown, chgrp, lpwd, df, symlink y lmkdir.
La terminación en caso de error se puede suprimir para un comando específico prefijando el comando con un carácter ‘-’ (por ejemplo, -rm /tmp/blah*). Se puede suprimir el eco del comando prefijando el comando con un carácter ‘@’. Estos dos prefijos se pueden combinar en cualquier orden, por ejemplo, -@ls /bsd.
-C Habilita la compresión (mediante la opción -C de ssh).
-c cipher
Selecciona el cifrado que se utilizará para cifrar las transferencias de datos. Esta opción se pasa directamente a ssh(1).
-D sftp_server_command
Se conecta directamente a un servidor sftp local (en lugar de a través de ssh(1)). Se puede especificar un comando y argumentos, por ejemplo, "/path/sftp-server -el debug3". Esta opción puede ser útil para depurar el cliente y el servidor.
-F ssh_config
Especifica un archivo de configuración por usuario alternativo para ssh(1). Esta opción se pasa directamente a ssh(1).
-f Solicita que los archivos se vacíen en el disco inmediatamente después de la transferencia. Al cargar archivos, esta función solo se habilita si el servidor implementa la extensión "_".
-i identity_file
Selecciona el archivo desde el que se lee la identidad (clave privada) para la autenticación de clave pública. Esta opción se pasa directamente a ssh(1).
-J destination
Se conecta al host de destino primero estableciendo una conexión sftp con el host de salto descrito por destination y luego estableciendo un reenvío TCP al destino final desde allí. Se pueden especificar varios saltos separados por comas. Esta es una forma abreviada de especificar una directiva ProxyJump. Esta opción se pasa directamente a ssh(1).
-l limit
Limita el ancho de banda utilizado, especificado en Kbit/s.
-N Deshabilita el modo silencioso, por ejemplo, para anular el modo silencioso implícito establecido por la opción -b.
-o ssh_option
Se puede utilizar para pasar opciones a ssh en el formato utilizado en ssh_config(5). Esto es útil para especificar opciones para las que no hay una opción de línea de comandos sftp separada. Por ejemplo, para especificar un puerto alternativo, use: sftp -oPort=24. Para obtener más detalles sobre las opciones que se enumeran a continuación y sus posibles valores, consulte 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 puerto
Especifica el puerto al que conectarse en el host remoto.
-p
Preserva las fechas de modificación, los tiempos de acceso y los modos de los archivos originales transferidos.
-q
Modo silencioso: deshabilita el medidor de progreso, así como los mensajes de advertencia y diagnóstico de [ssh]({filename}../../ssh)(1).
-R num_requests
Especifica cuántas solicitudes pueden estar pendientes en un momento dado. Aumentar este valor puede mejorar ligeramente la velocidad de transferencia de archivos, pero aumentará el uso de memoria. El valor predeterminado es de 64 solicitudes pendientes.
-r
Copia recursivamente directorios completos al subir y descargar. Tenga en cuenta que sftp no sigue los enlaces simbólicos encontrados en el recorrido del árbol.
-S programa
Nombre del programa que se utilizará para la conexión cifrada. El programa debe comprender las opciones de [ssh]({filename}../../ssh)(1).
-s subsistema | sftp_server
Especifica el subsistema SSH2 o la ruta de un servidor sftp en el host remoto. Una ruta es útil cuando el [sshd]({filename}../../sshd)(8) remoto no tiene un subsistema sftp configurado.
-v
Aumenta el nivel de registro. Esta opción también se pasa a ssh.
-X sftp_option
Especifica una opción que controla aspectos del comportamiento del protocolo SFTP. Las opciones válidas son:
nrequests=valor
Controla cuántas solicitudes de lectura o escritura SFTP concurrentes pueden estar en curso en un momento dado durante una descarga o carga. De forma predeterminada, 64 solicitudes pueden estar activas simultáneamente.
buffer=valor
Controla el tamaño máximo del búfer para una sola operación de lectura/escritura SFTP utilizada durante la descarga o carga. De forma predeterminada, se utiliza un búfer de 32 KB.
COMANDOS INTERACTIVOS
Una vez en modo interactivo, sftp comprende un conjunto de comandos similares a los de ftp(1). Los comandos no distinguen entre mayúsculas y minúsculas. Los nombres de ruta que contienen espacios deben estar entre comillas. Cualquier carácter especial contenido en los nombres de ruta que sea reconocido por glob(3) debe escaparse con barras diagonales inversas (‘\’).
bye
Salir de sftp.
cd [ruta]
Cambia el directorio remoto a ruta. Si no se especifica ruta, cambia el directorio al que se inició la sesión.
chgrp [-h] grupo ruta
Cambia el grupo del archivo ruta a grupo. ruta puede contener caracteres glob(7) y puede coincidir con varios archivos. grupo debe ser un GID numérico.
Si se especifica la bandera -h, entonces los enlaces simbólicos no se seguirán. Tenga en cuenta que esto solo
se admite en los servidores que implementan la extensión "_".
chmod [-h] modo ruta
Cambia los permisos del archivo ruta a modo. ruta puede contener caracteres glob(7) y puede coincidir con varios archivos.
Si se especifica la bandera -h, entonces los enlaces simbólicos no se seguirán. Tenga en cuenta que esto solo
se admite en los servidores que implementan la extensión "_".
chown [-h] propietario ruta
Cambia el propietario del archivo ruta a propietario. ruta puede contener caracteres glob(7) y puede coincidir con varios archivos. propietario debe ser un UID numérico.
Si se especifica la bandera -h, entonces los enlaces simbólicos no se seguirán. Tenga en cuenta que esto solo
se admite en los servidores que implementan la extensión "_".
copy ruta_antigua ruta_nueva
Copia el archivo remoto desde ruta_antigua a ruta_nueva.
Tenga en cuenta que esto solo se admite en los servidores que implementan la extensión "copy-data".
cp ruta_antigua ruta_nueva
Alias del comando copy.
df [-hi] [ruta]
Muestra información de uso para el sistema de archivos que contiene el directorio actual (o ruta si se especifica). Si se especifica la bandera -h, la información de capacidad se mostrará utilizando sufijos "legibles para humanos". La bandera -i solicita que se muestre la información de inodos además de la información de capacidad. Este comando solo se admite en los servidores que implementan
la extensión "_".
exit Sale de sftp.
get [-afpR] ruta_remota [ruta_local]
Recupera la ruta_remota y la almacena en la máquina local. Si no se especifica el nombre de la ruta local, se le asigna el mismo nombre que tiene en la máquina remota. ruta_remota puede
contener caracteres glob(7) y puede coincidir con varios archivos. Si lo hace y se especifica ruta_local, entonces ruta_local debe especificar un directorio.
Si se especifica la bandera -a, entonces se intentará reanudar las transferencias parciales de los archivos existentes.
Tenga en cuenta que la reanudación asume que cualquier copia parcial del archivo local coincide con la copia remota. Si el contenido del archivo remoto difiere de la copia local parcial, entonces el archivo resultante probablemente estará dañado.
Si se especifica la bandera -f, entonces se llamará a fsync(2) después de que se complete la transferencia del archivo para vaciar el archivo en el disco.
Si se especifica la bandera -p, entonces también se copiarán los permisos de archivo completos y los tiempos de acceso.
Si se especifica la bandera -R, entonces los directorios se copiarán recursivamente. Tenga en cuenta que sftp no sigue los enlaces simbólicos al realizar transferencias recursivas.
help Muestra el texto de ayuda.
lcd [ruta]
Cambia el directorio local a ruta. Si no se especifica la ruta, entonces cambia el directorio al directorio de inicio del usuario local.
lls [opciones_ls [ruta]]
Muestra el listado del directorio local de ruta o del directorio actual si no se especifica la ruta. opciones_ls puede contener cualquier bandera admitida por el comando [ls]({filename}../../ls)(1) del sistema local.
ruta puede contener caracteres glob(7) y puede coincidir con varios archivos.
lmkdir ruta
Crea el directorio local especificado por la ruta.
ln [-s] ruta_antigua ruta_nueva
Crea un enlace desde ruta_antigua a ruta_nueva. Si se especifica la bandera -s, el enlace creado será un enlace simbólico; de lo contrario, será un enlace físico.
lpwd
Imprime el directorio de trabajo local.
ls [-1afhlnrSt] [ruta]
Muestra una lista de directorio remoto de la ruta especificada o del directorio actual si no se especifica la ruta. La ruta puede contener caracteres glob(7) y puede coincidir con varios archivos.
Las siguientes banderas se reconocen y alteran el comportamiento de ls en consecuencia:
-1
Produce una salida en columna única.
-a
Lista los archivos que comienzan con un punto (‘.’).
-f
No ordena la lista. El orden de clasificación predeterminado es lexicográfico.
-h
Cuando se utiliza con una opción de formato largo, utiliza sufijos de unidad: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte y Exabyte para reducir el número de dígitos a cuatro o menos utilizando potencias de 2 para los tamaños (K=1024, M=1048576, etc.).
-l
Muestra detalles adicionales, incluida la información de permisos y propiedad.
-n
Produce una lista larga con información de usuario y grupo presentada numéricamente.
-r
Invierte el orden de clasificación de la lista.
-S
Ordena la lista por tamaño de archivo.
-t
Ordena la lista por la última hora de modificación.
lumask umask
Establece la máscara umask local en umask.
mkdir ruta
Crea el directorio remoto especificado por la ruta.
progress
Alterna la visualización del indicador de progreso.
put [-afpR] ruta_local [ruta_remota]
Sube ruta_local y lo guarda en la máquina remota. Si no se especifica el nombre de la ruta remota, se le asigna el mismo nombre que tiene en la máquina local. ruta_local puede contener caracteres glob(7) y puede coincidir con varios archivos. Si lo hace y ruta_remota se especifica, entonces ruta_remota debe especificar un directorio.
Si se especifica la bandera -a, entonces intenta reanudar las transferencias parciales de archivos existentes. Tenga en cuenta que la reanudación supone que cualquier copia parcial del archivo remoto coincide con la copia local. Si el contenido del archivo local difiere de la copia local remota, entonces el archivo resultante probablemente estará dañado.
Si se especifica la bandera -f, entonces se enviará una solicitud al servidor para que llame a fsync(2) después de que se haya transferido el archivo. Tenga en cuenta que esto solo es compatible con los servidores que implementan la extensión "_".
Si se especifica la bandera -p, entonces también se copian los permisos completos del archivo y los tiempos de acceso.
Si se especifica la bandera -R, entonces los directorios se copiarán de forma recursiva. Tenga en cuenta que sftp no sigue los enlaces simbólicos al realizar transferencias recursivas.
pwd
Muestra el directorio de trabajo remoto.
quit
Sale de sftp.
reget [-fpR] ruta_remota [ruta_local]
Reanuda la descarga de ruta_remota. Equivalente a get con la bandera -a establecida.
reput [-fpR] ruta_local [ruta_remota]
Reanuda la carga de ruta_local. Equivalente a put con la bandera -a establecida.
rename oldpath newpath
Renombra un archivo remoto de oldpath a newpath.
rm path
Elimina el archivo remoto especificado por path.
rmdir path
Elimina el directorio remoto especificado por path.
symlink oldpath newpath
Crea un enlace simbólico de oldpath a newpath.
version
Muestra la versión del protocolo sftp.
!command
Ejecuta un comando en el shell local.
! Accede al shell local.
? Sinónimo de help.
VER TAMBIÉN
ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), glob(7), sftp-server(8), sshd(8)
T. Ylonen y S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-filexfer-00.txt, enero
de 2001, material en curso.