Quiero enviar ssh a un servidor desde detrás de otro servidor ssh. El servidor de puerta de enlace requiere un nombre de usuario/contraseña y puedo hacerlo. Estoy utilizando un túnel para acceder al siguiente servidor, pero este requiere solo una clave ssh. He generado la clave a través de PuTTY, por lo que existe para mi nombre de usuario, pero no estoy seguro de cómo recuperarlo para mi programa Java. ¿Es una configuración? es decir, setConfig ("userauth.publickey", "com.jcraft.jsch.UserAuthPublicKey") entonces, ¿cómo uso esto o algo más? La documentación parece escasa y agradezco cualquier ayuda. Todo lo que he intentado me da un error: "Auth fail" cuando conecto esta sesiónJSch: Cómo enviar ssh a un servidor usando ssh-keys
¡Gracias!
El método de túnel que uso es: http://sourceforge.net/apps/mediawiki/jsch/index.php?title=ProxySSH ¡así que gracias al tipo que lo escribió!
Por contexto, me gustaría leer/escribir en un servidor en mi escuela desde mi teléfono Android.
Dado que el segundo SSH no incluye un nombre de usuario, ¿qué debería usar para ese campo al crear una instancia de la sesión? Una cadena vacía o nulo? es decir, jsch.getSession (WHAT_GOES_HERE ?, nombre de host, 22); – Choobs
Sigo recibiendo un error de falla de autenticación. Tengo id_rsa e id_rsa.pub almacenados localmente y usé PuTTYgen para exportar como clave OpenSSH y luego lo uso en addIdentity (...). ¿Me estoy perdiendo de algo? En el primer servidor hay un archivo /.ssh/authorized_keys, que es una copia de id_rsa.pub, si es relevante. – Choobs
Usted * siempre * necesita un nombre de usuario para SSH; no puede iniciar sesión en un servidor sin esto. (Después de todo, los comandos enviados tienen que ejecutarse en alguna cuenta de usuario local). Y el '.El archivo ssh/authorized_keys' (que contiene las claves públicas que están permitidas para iniciar sesión) debe estar en el directorio inicial del usuario con el que desea iniciar sesión. –