Canales populares

Comando scp

Fuente

http://www.garron.me/es/articulos/scp.html

Introducción

scp significa copiado seguro del ingles secure copy, esto quiere decir que se copiara archivos de un ordenador a otro a través de una conexión segura y encriptada.

El comando scp utiliza por defecto el puerto 22, y se conecta mediante un enlace encriptado ssh

Se puede utilizar scp para copiar archivos de un ordenador local a otro remoto, también se puede copiar del remoto al local y también se puede copiar entre dos remotos, mientras estas conectado a un tercer ordenador, y el tráfico no pasará por el ordenador en que estás.

Se puede usar scp en Linux, Mac y Windows.

Sintaxis

scp [-12346BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[[email protected]]host1:]file1 ... [[[email protected]]host2:]file2

Explicar la sintáxis completa y cada opción del comando scp esta fuera del alcance de este artículo, pero puedes obtener más ayuda usando el siguiente comando, desde cualquier sistema .nix

man scp

O, lo puedes leer en línea aquí (en inglés)

Pero vamos, veamos lo básico al menos.

scp [[[email protected]]host1:]file1 ... [[[email protected]]host2:]file2

scp
Es el comando en sí, le indica al sistema operativo que copie uno más archivos por medio de una conexión segura, mejor conocida como conexión ssh
[[[email protected]]host1file1
El origen, donde se especifica él archivo o archivos que serán copiados, puede o no contener la información del ordenador remoto, y también puede contener la información del usuario que es dueño del archivo o archivos en el ordenador remoto. Si el usuario no esta especificado, entonces por defecto usará los datos del usuario actual en el ordenador donde estas escribiendo el comando. Y si ningún ordenador remoto es especificado, entonces buscará el archivo localmente
[[[email protected]]host2file2
El destino, donde se especifica la vía donde los archivos serán copiados, es decir el destino de los mismos, y de nuevo, puede o no contener la información sobre el ordenador remoto y el usuario en ese ordenador. Al igual que fuera explicado arriba, si el usuario no se especifica pero si el nombre o el IP de un ordenador, en ese caso tratará de obtener acceso a ese ordenador remoto usando las credenciales del usuario actual, y si no se especifica ordenador remoto, se asume que el destino de los archivos es local.

Solo para dejar todo claro, se puede no especificar ni ordenador ni usuario remotos, tanto en el origen como en el destino, y en este caso el comando scp actuará tal como el comando cp y copiará los archivos localmente.

Ejemplos

*Copiar un archivo local a un destino remoto

scp /ruta/al/archivo-origen [email protected]:/ruta/al/directorio-destino/

Así que si queremos copiar el archivo /home/user/table.csv a un ordenador remoto llamado ordenador.ejemplo.com y archivo a copiar esta en el directorio de jane, debemos usar un comando así.

scp /home/user/table.csv [email protected]:/home/jane/

Copiar un archivo de un ordenador remoto al ordenador local

scp [email protected]:/ruta/al/archivo-origen /ruta/al/directorio-destino

Digamos que se quiere copiar el mismo archivo del directorio de jane en ordenador.ejemplo.com a tu directorio en el ordenador local

scp [email protected]:/home/jane/table.csv /home/usuario/

Copiar un archivo de un ordenador remoto a otro ordenador remoto

Con el comando scp se puede copiar archivos entre dos servidores remotos sin necesidad de establecer una conexion permanente con ninguno de ellos, todo el trabajo pesado será realizado por scp

scp [email protected]:/path/to/file [email protected]:/path/to/folder/

Así, si queremos copiar un archivo del directorio de jane a otro de pete, siendo que ambos archivos están en servidores a los cuales no estamos conectados.

scp [email protected]:/home/jane/table.csv [email protected]:/home/pete/

Copiar un único archivo de un servidor remoto al mismo servidor remoto, pero en otro directorio

scp [email protected]:/home/jane/table.csv [email protected]:/home/pete/

En esta ocación se copiará de un ordenador al mismo ordenador sin establecer una conexión permanente con él, es equivalente a establecer una conexión ssh con el servidor, y luego usar el comando cp para copiar el archivo.

Copiar todos los archivos de un tipo específico

scp /ruta/al/folder/*.ext [email protected]:/ruta/al/folder/

Este comando copiará todos los archivos con la extensión .ext. Así por ejemplo si queremos copiar todos los archivos de texto .txt a un nuevo folder

scp /home/usuario/*.txt [email protected]:/home/jane/

Puedes usar comodines en estos comandos tal cual en otros que admiten su uso.

Copiar todos los archivos de un directorio a un servidor remoto

scp /ruta/al/directorio/* [email protected]:/ruta/al/directorio/

Esto copiará todos los archivos entro del directorio local al directorio en el servidor remoto. Veamos un ejemplo.

scp /home/user/html/* [email protected]:/home/jane/backup/

Todos los archivos .html serán copiados al directorio backup en el servidor host.example.com

Copiar todos los archivos de un directorio recursivamente al servidor remoto

scp -r /home/user/html/* [email protected]:/home/jane/backup/

Tal como en el ejemplo anterior, pero en esta ocación copiará todos los contenidos recursivamente.

Copiar un directorio y todo su contenido a un directorio en el servidor remoto

scp -r /ruta/al/directorio-origen [email protected]:/ruta/al/directorio-destino/

En esta ocación el directorio en sí es copiado, incluyendo claro está todo su contenido, y no solo el contenido, como en el caso anterior. Veamos un ejemplo.

scp -r /home/user/html [email protected]:/home/jane/backup/

Lo que va a suceder es que el directorio local html, será copiado con su contenido recursivamente al servidor remoto en el directorio /home/jane/backup/

Trucos

Hemos visto hasta ahora las formas básicas de scp, ahora vamos a ver algunos trucos que nos pueden ayudar en alguna oportunidad.

Incrementa la velocidad

scp usa AES-128 para encriptar los datos, esto lo hace bastante seguro, pero también algo lento. Si queremos darle un poco más de velocidad y aún tener velocidad, podemos usar Blowfish o RC4.

Para incrementar la velocidad de scp se puede cambiar el algoritmo de cifrado del AES-128 que usa por defecto a Blowfish

scp -c blowfish [email protected]:/home/user/file .

O usar RC4 que parece ser el más rápido.

scp -c arcfour [email protected]:/home/user/file .

Esta última no es muy segura, y no debe ser utilizada si la seguridad realmente es algo que le importe.

Incrementa la seguridad

Si la seguridad es lo más importante, se puede incrementar a costa de algo de velocidad.

scp -c 3des [email protected]:/home/user/file .

Limita el ancho de banda

Se puede limitar el ancho de banda a ser utilizado por el comando scp

scp -l limit [email protected]:/home/uername/* .

El límite esta especificado en Kbits/s, por lo que por ejemplo si se desea limitar a 50 Kbps

scp -l50 [email protected]:/path/to/file /path/to/folder

Ahorra datos

Igualmente es posible ahorrar en consumo de datos, esto se consigue comprimiendo los archivos a ser enviados.

scp -C [email protected]:/path/to/file /path/to/folder

Definir IPv4 o IPv6

Si se desea forzar el uso de IPv4 o de IPv6 también es posible, veamos estos ejemplos

scp -4 [email protected]:/path/to/file /path/to/folder

El ejemplo de arriba usa IPv4 y el de abajo IPv6

scp -6 [email protected]:/path/to/file /path/to/folder

Especifica el puerto

En caso que el servidor remoto no este escuchando en el puerto que usa ssh por defecto que es el 22, se puede hacer que scp use otro puerto para establecer la conexión con el ordenador remoto.

scp -P [port] [user]@[server]:[path/to/]file [/path/to/]file

Usando la P mayúscula se puede especificar el puerto que scp usará para conectarse, en el ejemplo de abajo podemos ver que se esta indicando a scp a usar el puerto 2222

scp -P 2222 [email protected]:/home/jane/file /home/jane/

Windows

En caso de estar trabajando en un ordenador que estuviera usando Windows en lugar de Linux o algún otro derivado de Unix como ser algún BSD, aún puedes disfrutar de scp en varias formas, línea de comandos o herramientas gráficas.
pscp

pscp es un comando de terminal que funciona en Windows, casi de la misma manera que el comando scp de los sitemas operativos tipo Unix. Lo primero que se debe hacer es bajar el software desde aquí, o usando este link directo

Una vez descargado puede ser invocado desde la teminal de comandos de Windows, para hacer eso, ir a menú inicio, luego ejecutar y escribir

cmd

Luego precionar ENTER, para Windows 8.x, presionar la tecla Windows y hacer click en la lupa, escribir cmd y presionar ENTER.

Una vez en la linea de comandos, asegurarse de estar en el directorio donde pscp fuera descargados, o agregar dicho directorio a la variable PATH, supongamos que esta en el folder Downloads, se debe ejecutar este comando.

SET PATH=C:UsersGuillermoDownloads;%PATH%

Debe cambiarse el usuario de acuerdo a la configuración particular de cada PC.

Este comando deberá ser ejecutado cada vez que se reinicie el ordenador, o configurarlo de manera permanente, el como hacerlo esta fuera del alcance de este artículo.

Abajo, se pueden ver las opciones del comando.

PuTTY Secure Copy client
Release 0.63
Usage: pscp [options] [[email protected]]host:source target
       pscp [options] source [source...] [[email protected]]host:target
       pscp [options] -ls [[email protected]]host:filespec
Options:
  -V        print version information and exit
  -pgpfp    print PGP key fingerprints and exit
  -p        preserve file attributes
  -q        quiet, don't show statistics
  -r        copy directories recursively
  -v        show verbose messages
  -load sessname  Load settings from saved session
  -P port   connect to specified port
  -l user   connect with specified username
  -pw passw login with specified password
  -1 -2     force use of particular SSH protocol version
  -4 -6     force use of IPv4 or IPv6
  -C        enable compression
  -i key    private key file for authentication
  -noagent  disable use of Pageant
  -agent    enable use of Pageant
  -batch    disable all interactive prompts
  -unsafe   allow server-side wildcards (DANGEROUS)
  -sftp     force use of SFTP protocol
  -scp      force use of SCP protocol


Copiar archivos de Windows a Linux

Se puede utilizar scp para copiar archivos de Windows a Linux

pscp c:pathtofile [email protected]:/path/to/remote-folder

Copiar archivos de Linux a Windows

Igualmente se puede copiar archivos de Linux (FreeBSD o Max OS X) a Windows.

pscp [email protected]:/path/to/remote-file c:pathtolocal-folder

Especificar un protocolo

Se puede especificar el protocolo que scp va a utilizar en cada conexión.

-scp
Forzará a pscp a utilizar el protocolo scp
-sftp
Esto forzará a pscp a utilizar el protocolo sftp

WinSCP

WinSCP es la versión gráfica de scp, principalmente utilizada en Windows, su desarrollo comenzo en el 2.000 por Martin Přikryl y esta licenciado bajo la licencia GNU, por lo tanto es software libre

WinSCP no es solo un cliente SCP, tambien es un cliente SFTP

Capturas de Pantalla

Abajo hay unas capturas de pantalla



Principales Características

Algunas de sus principales características son:

Sincronismo total

Esta característica mantendrá ambos lados de la conexión en sincronia, por lo que cada cambio realizado en cualquiera de los lados será actualizado en el otro lado. La aplicación debe mantenerse activa, y conectada para mantener esta funcionalidad activa

Sincronismo remoto

En este caso se mantiene en sincronia el lado remoto con el local, es decir que cualquier cambio en el lado local se reflejará en el lado remoto, pero no al revés

Se puede decidir si los archivos del lado remoto serán borrados cuando se borren en el lado local al iniciar la conexión. Si ser activa dicha funcionalidad, cualquier archivo borrado en el lado local será borrado en el remoto, pero si no, solo los archivos agregados en el lado local se crearán en el remoto y los cambios en los archivos existentes se reflejarán en el remoto

Arrastrar y Soltar

Es posible arrastrar y soltar del lado local al remoto y viceversa, para copiar archivos de uno de los lados al otro

Como se puede ver, se obtiene la misma funcionalidad básica para Windows que los usuarios de Linux o Mac OS X ya disfrutan, y puede que esta sea la forma más fácil de copiar archivos de Windows a Linux y de Linux a Windows.
0
0
0
0No hay comentarios