Linux: Copiado de archivos entre computadoras

Este tema es un poco similar a la transferencia de archivos vía FTP, del cuál, ya cubro tema en Comandos para red. Sin embargo, es un tanto distinto, dado que con los permisos necesarios, se pueden copiar archivos con una simple instrucción sin tener que cambiar entre directorios y hacer los movimientos clásicos de un FTP.

Muy bien, vamos a comenzar, vamos a suponer que desde un servidor cualquiera, quiero hacer una copia de distintos archivos a mi computadora.

1. Servicio ssh en computadora destino

Para que cualquiera pueda copiar archivos a mi computadora desde un servidor, se requiere que mi computadora, tenga habilitado el servicio ssh. Para verificar si se tiene o no activado, podemos auxiliarnos del comando nmap con el formato:

nmap nombre_servidor|dirección_ip

En este caso, como quiero verificar los servicios en mi laptop, usaré el localhost como les muestro a continuación:

orlando_olguin@metallilaptop:~$ nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2011-11-25 18:48 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0011s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
631/tcp  open  ipp
8089/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds

Como se puede ver, no tengo activado dicho servicio, por lo que para levantarlo, hay que usar el comando service por medio del sudo como se ve a continuación:

orlando_olguin@metallilaptop:~$ sudo service ssh start
ssh start/running, process 6109

Con esto, si vuelvo a ejecutar el comando nmap, podré ver nuevamente los servicios que se encuentran activos:

orlando_olguin@metallilaptop:~$ nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2011-11-25 18:52 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0013s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
8089/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds

Con lo cual, se confirma que ya se encuentra levantado el servicio ssh.

2. Conexión al servidor de copia

Muy bien, ahora hay que conectarse al servidor desde el cual, realizaré la copia hacia mi computadora:

orlando_olguin@metallilaptop:~$ ssh root@192.168.2.139
root@192.168.2.139's password:
Last login: Fri Nov 25 16:05:19 2011 from 192.168.2.209
/root>

3. Localizar archivos a copiar

Ya estando en el servidor desde el cual, se realizará la copia, hay que ubicar los archivos que se copiarán. En este caso para mi ejemplo, usaré los archivos con extensión log:

/root> ls *.log
install.log  sqlnet.log

4. Ubicar directorio destino

Antes de pasar al siguiente punto del copiado, es necesario verificar que existe un directorio en la computadora o servidor destino. Añadiré a este punto la verificación de que no existen los archivos a copiar:

orlando_olguin@metallilaptop:~$ pwd
/home/orlando_olguin
orlando_olguin@metallilaptop:~$ cd downloads
orlando_olguin@metallilaptop:~/downloads$ pwd
/home/orlando_olguin/downloads
orlando_olguin@metallilaptop:~/downloads$ ls *.log
ls: cannot access *.log: No such file or directory

5. Verificar la dirección IP destino

Otro punto necesario, es ubicar la dirección IP de la computadora destino. En este caso la de mi computadora. Como estoy conectado vía alámbrica, podré elegir la interface eth0:

orlando_olguin@metallilaptop:~/downloads$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:26:b9:be:67:8a  
          inet addr:192.168.2.164  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::226:b9ff:febe:678a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7516388 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2893168 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000
          RX bytes:2189477587 (2.1 GB)  TX bytes:224104127 (224.1 MB)
          Interrupt:44

Con esto, ya verifiqué que mi dirección IP, es la 192.168.2.164.

6. Copiar archivos

Ya con toda la información recabada, se puede hacer la copia de los archivos, el formato del comando es como se muestra a continuación. Nota. También se requiere la contraseña del usuario de la computadora o servidor destino:

scp archivos_a_copiar usuario@dirección_ip|nombre_servidor:/directorio

De tal forma que al estar en el servidor origen, la ejecución del comando queda como:

/root> scp *.log orlando_olguin@192.168.2.164:/home/orlando_olguin/downloads
The authenticity of host '192.168.2.164 (192.168.2.164)' can't be established.
RSA key fingerprint is 0a:3f:80:cc:ce:4a:9d:f6:12:59:84:0b:ac:60:77:c7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.164' (RSA) to the list of known hosts.
orlando_olguin@192.168.2.164's password:
install.log                                                100%   38KB  38.4KB/s   00:00
sqlnet.log                                                 100% 5555     5.4KB/s   00:0

7. Verificar archivos en la computadora destino

Después de la copia de los archivos, nos restará verificar que se hayan copiado correctamente:

orlando_olguin@metallilaptop:~/downloads$ ls *.log
install.log  sqlnet.log

8. Desactivar el servicio ssh

Para finalizar con el desactivado del servicio ssh en mi computadora por seguridad:

orlando_olguin@metallilaptop:~/downloads$ sudo service ssh stop
[sudo] password for orlando_olguin:
ssh stop/waiting

Verificando también que efectivamente ya no está disponible dicho servicio:

orlando_olguin@metallilaptop:~/downloads$ nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2011-11-25 18:57 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00070s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
631/tcp  open  ipp
8089/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Conclusiones

Con esto, se demuestra cómo se puede realizar la copia de archivos entre computadoras y/o servidores, sin la necesidad de pasar por una transferencia FTP.

Espero les sea de utilidad.

Si la información de este post te ha sido de utilidad o quieres que agregue algo más, deja por favor un comentario, contestaré a la brevedad.

Anuncios

4 Responses to Linux: Copiado de archivos entre computadoras

  1. Muy bien Orlando pero el scp no se acaba ahi, hay más maneras de copiar (sin hacer previamente un ssh) por ejemplo:

    -Copiar un archivo de un host remoto en el directorio donde estoy

    scp usuario@host:archivo ./

    -Copiar un directorio remoto en un directorio local

    scp -r usuario@host:/ruta/dirRemoto/ /tmp/

    -Copiar archivos entre hosts remotos

    scp usuario1@host1:/rutahost1/archivoHost1 usuario2@host2:/rutahost2/archivoHost2

    Saludos!!!!

  2. orlandoolguin says:

    Muy buenos puntos Oscar, lo dejé hasta ese punto porque es lo que más he usado.

    Orlando.

  3. Calixto says:

    Al hacer todo esto que mencionas me sale la leyenda acceso denegado, ¿sabes por qué? el usuario que utilizo es el root.

  4. Orlando Olguín Olvera says:

    Hola Calixto.

    Si sólo te aparece acceso denegado como mensaje es probable que ocurra alguna o varias de las siguientes situaciones:

    – La contraseña que estás usando es incorrecta,
    – cuando te conectas a un servidor, se genera una llave que genera un vínculo de confianza entre tu computadora y el servidor, puede estar incorrecta, bórrala y generas una nueva,
    – el usuario está deshabilitado o
    – el usuario está habilitado sólo para que te conectes directamente en el servidor o de alguna dirección IP especial.

    Espero que esto te sirva.

    Orlando.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: