Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

¿Una ayudita sobre el manejo de procesos?
#1

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

No podemos regresar
    ¡Gracias!
#2

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.
    ¡Gracias!
#3

(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.

No podemos regresar
    ¡Gracias!
#4

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
    ¡Gracias!
#5

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ó.
    ¡Gracias!
#6

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

No podemos regresar
    ¡Gracias!
#7

(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.
    ¡Gracias!
#8

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.

No podemos regresar
    ¡Gracias!
#9

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

No podemos regresar
[-] Los siguientes 2 usuarios dicen gracias a Shordi por este post:
  • Grandamakulo, tincho
    ¡Gracias!
#10

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.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)