scp utilizado desde un terminal, permite enviar o recibir ficheros a servidor con ssh, sin necesidad de utilizar ftp, o cualquier otro programa. Es seguro, puesto que utilizamos nuestras claves ssh, que hemos creado siguiendo las instrucciones del artículo: Como usar ssh para acceder a servidores, y además, cuando es un único fichero, o una carpeta completa, la que queremos mover, resulta mas rápido que realizar la transmisión a través de un programa de ftp.
Enviar carpeta o ficheros a servidor con ssh
Para utilizar el comando scp para enviar un fichero a un servidor, lo que tenemos que escribir en una ventana de terminal es la ruta al fichero en nuestro equipo, supongamos que se trata del fichero imagen.jpg en nuestra carpeta imágenes, la ruta seria: /home/usuario/imágenes/imagen.jpg, lo siguiente seria la conexión al servidor usuario@ipservidor y a continuación la ruta donde queremos copiar el fichero por ejemplo /var/www/blog/html. Esta claro que para que el comando scp funcione, nuestro usuario del servidor tiene que tener permisos para escribir en la carpeta de destino. Si no tenemos claro que el usuario con el que nos conectamos al servidor tiene permiso de escritura, tenemos la opción de crear una carpeta donde enviar los ficheros con el comando scp. Una vez los ficheros estén en el servidor nos conectamos por ssh y los movemos a la carpeta de destino. Además tenemos que recordar que si tenemos bloqueados los puertos y hemos redirigido el trafico de ssh del puerto 22 a otro puerto debemos indicar el puerto por el que se va efectuar la conexión. Para ello existe la opción -P, con la que indicamos el puerto a través del que se efectuará la conexión. Veamos ahora un ejemplo práctico de como quedaría en la línea del terminal:$ scp -P2212 /home/jvare/imagenes/logojvare.ico jvare@ipservidor:/var/www/miblog/html/
Recibir carpeta o ficheros de servidor con ssh
El comando scp puede ser muy útil también para descargar ficheros del servidor a nuestro equipo, por ejemplo cuando realizamos un backup en el servidor, y queremos copiar el archivo resultante a nuestro equipo. Para descargar desde el servidor al equipo local, tenemos que introducir las rutas al contrario, en primer lugar la del servidor y en segundo lugar la de nuestro equipo, por ejemplo$ scp -P2212 jvare@ipservidor:/home/usuario/backup.bz /home/jvare/descargas/Cuando vamos a copiar una carpeta y todo lo que existe en su interior conviene introducir el parámetro -r, y también puede ser útil el parámetro -l que limita el ancho de banda utilizado, medido en Kbit/s. Pueden verse todas la variables del comando scp, en su man page en este enlace.]]>