5 votos

Copia de seguridad de uucp estilo

Yo a menudo el caso que tengo que hacer un montón de saltos hasta el host remoto, simplemente porque no hay ruta directa entre mi cliente y el host remoto. Cuando tengo que copiar los archivos de un host remoto dos o más saltos de distancia, siempre tengo a:

client$ ssh host1
host1$ ssh host2
host2$ scp host3:/myfile .
host2$ exit
host1$ scp host2:myfile .
host1$ exit
client$ scp host1:myfile .

De vuelta al uucp todavía estaba siendo utilizado esto podría ser tan simple como un

uucp host1!host2!host3 /myfile .

Sé que hay uucp a través de ssh, pero por desgracia no tengo los privilegios adecuados en esas máquinas. También, no estoy seguro de si realmente quiero jugar un poco con el cliente de las máquinas.

¿Alguien sabe de un método de hacerlo tareas sin la necesidad de instalación de una gran cantidad de túneles o en la implementación de nuevo software a hosts remotos? Tal vez algún tipo de recursivas secuencia de comandos que los clones de sí mismo a todos los hosts remotos, haciendo el trabajo duro por mí?

Suponga que la autenticación se lleva a cabo con claves públicas y que todos los hosts hacer SSH Agente de Reenvío.

Edit: yo no estoy buscando una manera automática reenvío de mi interactivo sesssion a la nexthop host. Quiero una solución para copiar archivos bangpath de estilo usando scp a través de múltiples saltos sin la necesidad de instalar uucp en cualquiera de esas máquinas. No tengo el (legal) de los derechos o privilegios para realizar cambios permanentes en el ssh-config. También voy a compartir este nombre de usuario y anfitriones con un montón de otras personas. Estoy dispuesto a hackear mi propio script, pero quería saber si alguien sabe de algo que ya se hace. Mínimo-invasiva cambios a los hosts en la bangpath, la simple invocación del cliente.

Edit 2: Para dar una impresión de cómo se ha hecho correctamente en las sesiones interactivas, eche un vistazo a la GXPC clustershell. Esto es, básicamente, un Python-script, que spwans a todos los hosts remotos que tienen conectividad y donde su ssh-la clave está instalado. La gran cosa acerca de esto, que se puede decir "puedo llegar a HostC a través de HostB a través de HostA." Simplemente funciona. Quiero tener esto para el scp.

6voto

poige Puntos 5395

ssh host1 ssh host2 ssh host3 cat /myfile > myfile ? :)

UPD. (2014-01-20): Recientemente me encontré man dbclient que menciona: "...

-B endhost:endport - "Netcat-de igual modo", donde Dropbear va a conectar con el host determinado, a continuación, crear una remitido conexión a endhost. Este será presentado como dbclient estándar de entrada/salida.

Dropbear también permitirá a varios "saltos" para ser especifica, separados por comas. En este caso la conexión se realizará a la primera acogida, a continuación, un TCP remitido conexión se realizará a través de la que el host de segundo, y así sucesivamente. Los ejércitos de otros que el destino final no va a ver otra cosa que el cifrado SSH corriente. Un puerto para un host se puede especificar con una barra (por ejemplo, matt@martello/44 ). Esta sintaxis se puede utilizar también con scp o rsync (especificar dbclient como el ssh/comando rsh). Puede ser un archivo de "devolución" a través de múltiples SSH saltos, por ejemplo

         scp -S dbclient matt@martello,root@wrt,canyons:/tmp/dump .

Tenga en cuenta que los nombres de host son resueltas por el antes hop (por lo que "cañones" sería resuelto por el host "wrt") en el ejemplo anterior, de la misma manera como otros-L TCP remitido hosts. Las claves de Host se comprueban local basado en el nombre de host dado.

0voto

Aunque específicamente mencionar que esto no es lo que usted está buscando, voy a insistir en que se trate de esto porque la configuración de una secuencia de comandos en cada host en la ruta a su destino es más complejo y requiere mucho tiempo.

Si usted está en el host de la computadora portátil y usted desea copiar algo de host del servidor web, pero se puede acceder sólo a través de la web companygatweay.org, entonces todo lo que usted necesita hacer es:

laptop$   ssh -L4444 companygateway.org:webserevr:22

Esto abrirá el puerto 4444 en su máquina local directamente a través del servidor web en el puerto 22.

la copia con el scp del servidor web, se vería así:

laptop$    scp -P 4444 /some/files/here localhost:/to/some/files/on/webserver

para copiar desde el servidor web:

laptop$    scp -P 4444 localhost:/tmp/remote/files /home/localusername/downloads

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: