Comunidad Gambas-es
¿Una ayudita sobre el manejo de procesos? - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forumdisplay.php?fid=3)
+--- Foro: General (https://gambas-es.org/forumdisplay.php?fid=4)
+--- Tema: ¿Una ayudita sobre el manejo de procesos? (/showthread.php?tid=517)

Páginas: 1 2


¿Una ayudita sobre el manejo de procesos? - Shordi - 24-07-2021

El tema es conseguir la confianza entre la máquina del usuario y el servidor de manera automática.
Para eso quiero lanzar un comando desde gambas vía shell (ssh-keygen) que requiere del usuario introducir dos veces "Enter",  una clave y un Enter para completarse pero quiero que todo sea transparente al usuario.
En las ayudas de gambas dice algo de que si lanzas el proceso FOR INPUT se ejecuta en una consola virtual, sea eso lo que sea, y se pueden enviar pulsaciones de teclas y cosas así... pero no dice nada más y no tengo ni idea de cómo hacerlo.

¿Alguien sabe cómo?

Gracias


RE: ¿Una ayudita sobre el manejo de procesos? - gambafeliz - 25-07-2021

Hola Shordi

No entendido bien el problema que planteas. Y como esto es muy ambiguo, te concreto.

1. El usuario entiendo que verá un formulario, ¿es así?, esto es lo que tu llamas transparente al usuario.
2. Que, como que quieres hacer exactamente que no me entero, se que no soy la persona mejor para ayudarte pero desearía aspirar a ello y no me entero.

Saludos.


RE: ¿Una ayudita sobre el manejo de procesos? - Shordi - 26-07-2021

(25-07-2021, 19:30)gambafeliz escribió:  Hola Shordi

No entendido bien el problema que planteas. Y como esto es muy ambiguo, te concreto.

1. El usuario entiendo que verá un formulario, ¿es así?, esto es lo que tu llamas transparente al usuario.
2. Que, como que quieres hacer exactamente que no me entero, se que no soy la persona mejor para ayudarte pero desearía aspirar a ello y no me entero.

Saludos.
No. Transparente es la forma "elegante" de decir invisible. El usuario no debe ver na de na. El proceso que lanzas pide dos o tres cosas en un terminal y lo que se trata es de enviárselas sin tener que teclearlas.
De todas formas, sin haber solucionado el problema, en la granja he encontrado un par de programitas que me han dado ideas y he encontrado un "workaround", que es como llamas a rodear el problema sin solucionarlo, que me vale de momento. No pongo [SOLUCIONADO] porque en realidad no lo he hecho.
Gracias por tu interés.


RE: ¿Una ayudita sobre el manejo de procesos? - gambafeliz - 26-07-2021

Pero que me gusta hablar contigo tío, que elegancia pa explicar, endelugo, pues naa, me quedo mirando para ver que vas ha decir al respecto de la solución.

Un amigo Smile


RE: ¿Una ayudita sobre el manejo de procesos? - Carlos - 29-07-2021

Si de lo que se trata es de enviar datos datos a otro host puedes hacerlo por scp. años atrás esto se hacía

scp fichero usuario:password@host:/home/usuario

También permite enviar datos de un host remoto a otro host remoto
scp usuario1:password@host1:/home/usuario1/fichero usuario2:password@host2:/home/usuario2:

Lo he probado y no me ha funcionado. Hace años que no lo uso así, seguramente era muy inseguro y lo cambiaron porque la clave iría plana por la red y no están los tiempos para eso, pero ahora al mirar veo que también funciona con certificados. Si te interesa te lo miro.


He mirado man y efectivamente ya no permite enviar la password así, pero se puede hacer con  certificados. Parece bastante simple. Le pones -i y la clave privada y en el otro host la clave pública. Enviarás datos sin más porque en vez de pedir usuarios y claves se identifican los certificados.

Otra forma un poco más laboriosa es configurar un tunel ssh.
Años atrás configuré ssh para que dejara entrar sin pedir clave a un usuario concreto si procedía de una ip concreta. Ahora no recuerdo como, tendría que mirarlo pero en su día funcionó.


RE: ¿Una ayudita sobre el manejo de procesos? - Shordi - 30-07-2021

Gracias por tu interés Carlos. El tema que me ocupa es ligeramente distinto. Se trata de establecer la confianza con otro host de manera transparente al usuario, salvo la entrada de la clave, claro. Lo que quiero es que el ssh-keygen para crear la clave pública sea totalemente transparente, cosa que ya he conseguidi, y que al ejecutar el ssh-copy-id sobre el otro host, no haya que recurrir al terminal sino que nuestro programa sea el que pida la clave y la envíe al proceso de ssh-copy-id.
Los pasos serían:
La primera vez que se ejecuta el programa:

ejecutar ssh-keygen sin que sea visible (Hecho)
ejecutar ssh-copy-id. Este proceso se detiene esperando la contraseña
capturar la contraseña en el programa de Gambas y
enviarselo al proceso del ssh-copy-id.

Las siguientes veces que se ejecute, al estar la confianza establecida, ya no hay claves por medio y demás.

Saludos


RE: ¿Una ayudita sobre el manejo de procesos? - tincho - 02-08-2021

(30-07-2021, 10:03)Shordi escribió:  ejecutar ssh-keygen sin que sea visible (Hecho)
ejecutar ssh-copy-id. Este proceso se detiene esperando la contraseña
capturar la contraseña en el programa de Gambas y
enviarselo al proceso del ssh-copy-id.

Hola Shordi, como va el avance en este tema? Probaste consultarlo en la lista internacional? tienes algún código hecho para hacer pruebas?
Saludos.


RE: ¿Una ayudita sobre el manejo de procesos? - Shordi - 02-08-2021

De momento estoy en stand-by por vacaciones (sí, los jubiletas también tenemos vacaciones). Cuando vuelva dentro de algunos días te cuento.

Saludos.


RE: ¿Una ayudita sobre el manejo de procesos? - Shordi - 08-08-2021

Acabados que se han los días de vino y rosas, vuelta al trabajo. He investigado el asunto y en el vídeo-tutorial que he subido tenéis el fruto de mis investigaciones.


Saludos


RE: ¿Una ayudita sobre el manejo de procesos? - tincho - 09-08-2021

Gracias por el video Shordi.
Es posible, y muy sencillo extender la clase porcess, para ello hay que crear un método Static en una clase que se llame igual que process teniendo cuidado de que el método a agregar no se llame igual que uno existente.
Saludos.