sábado, 9 de marzo de 2013

Copiar archivos por ssh desde consola Linux/Unix

Desde siempre,he oido hablar de ssh,puerto 22,etc,etc mas que nada en el mundo de los servers o también mas que nada en mi caso al querer copiar algo a las carpetas del iPhone jailbroken,es muy común oír hablar de Winscp,en este caso Winscp es una GUI(interfaz gráfica de scp para Windows),scp es secure copy,osea copia segura a travez de ssh(Secure Shell) por el puerto 22 o el que hayamos configurado de un host local a un host remoto,osea de una pc a otra por medio de conexión a Internet,bien.

En el caso de Linux o BSD podemos conectarnos de manera gráfica a un host remoto a travez de sftp con filezilla o bareftp(por ejemplo),en el caso de MacOS X esta duck...(no recuerdo :P),pero bueno en ocasiones como es mi caso necesitamos solo pasar unos cuantos archivos a una maquina,iphone,etc remota y no vale la pena ni abrir un programa con GUI, así que para eso esta scp(solamente) desde la consola Linux/BSD podemos usar scp para mandar archivos rapidamente a host's remotos:

Por ejemplo el envio de un script en Perl a un iPod desde Gentoo por scp:

Y listo :D


Tutorial:

Solo necesitamos scp,y lo mas seguro es que lo tengan instalado.

1.Para mandar un archivo necesita que los dos host tengan ssh activado,y saber la ip del host remoto,en este caso es una ip dinamica de una red local(192.168.x.x)

La sintaxis es la siguiente:

scp archivos usuario@ip:ruta


scp : es el comando que hara el trabajo,as info

scp --help

archivos : son los archivos que mandaremos,pueden se listados uno tras otro, o podemos usar Wildcards Unix , también si tenemos problemas con los espacios,solo encierra el archivo en comillas simples ('archivo con espacios')

usuario : es el nombre del usuario del host que le mandaremos los archivos,si podemos o somos root en dicho host,lo mas común es usar a root,sea una mala practica o no,pero podremos copiar el archivo en cualquier carpeta del host,o la copiamos a un user como y entramos por ssh a moverla y cambiar permisos.

ip : Es la ip que ocupa el host,en este caso(en el ejemplo de arriba) una dinámica de la red local de mi router.

ruta : La ruta es la carpeta donde mandaremos el archivo a copiar,para esto debemos conocer bien las ramas(carpetas) del sistema,si es Darwin,BSD,Debian,Windows,etc.

Esas son las opciones basicas,ahora para mandar una carpeta entera,solo se usa este parámetro -r


scp -r carpeta usuario@ip:ruta
Ahora,en reversa  


Digamos que queremos un archivo del iPod en la Pc:

Se usa esta sintaxis

 scp user@ip:ruta_archivo ruta/de_nuestra_pc
ruta_archivo : Debe ser la ruta absoluta,po ejemplo /var/mobile/Media/archivo.txt

ruta/de_nuestra_pc : Debe ser la ruta absoulta de nuestra Pc

Esto se facilita con wildcards :

Copiar una carpeta de un host remoto a nuestro Home:

scp -r user@ip:ruta/* ~

Y si les gusta la seguridad tal vez sean de las personas que hasta cambian puertos, usan iptables,etc en scp también podemos elegir otro puerto, solo usamos el parámetro -P

scp -P puerto -r user@ip:ruta/* ~

Eso es todo :D

No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.