Unable to SSH tunnel to hit private API

Abierto
#430 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
node.js, typescript

Línea de trabajo

Comienza en ssh.connection?.forwardOut del ejemplo del issue y compara su comportamiento de reenvío con el túnel SSH de la línea de comandos. Comprueba la API de reenvío de node-ssh y verifica la solicitud de Axios a localhost:8081; se considera terminado cuando el endpoint de la API privada responde mientras la sesión SSH permanece abierta.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

external unconfirmed bug

Hey all,

I have a server in a private subnet that is hosting a REST API on port 80 and a jump box in a public subnet that I would like to tunnel through so that I can invoke the REST API in the same execution with axios. When I run the command line command to tunnel everything works fine:

ssh -i "keypair.pem" -L 8081:<API HOST>:80 <JUMP BOX USER>@<JUMP BOX IP>

Once I run that command, as long as I keep the session open, I can hit the API through Postman/Axios. All good.

I am trying to do the same thing with this library, but the connection is not being exposed properly and I can't figure out why. Here is my code:

const ssh = new NodeSSH();
await ssh.connect({
  host: '<JUMP BOX IP>',
  username: '<JUMP BOX USER>',
  privateKey: `RSA KEY`
});
ssh.connection?.forwardOut('127.0.0.1', 8081, <API HOST>, 80);
const response = await axios.get(`http://localhost:8081/<ENDPOINT PATH>`);

The connection opens fine and I can exec commands as I want. This issue may be a result of using async/await as well, but I would like to stick using that model if possible.

Thanks in advance for the eyes and any ideas.

Lenguaje dominante
TypeScript
Estrellas
1k
Forks
94
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de steelbrain/node-ssh

Todos los issues de steelbrain/node-ssh

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.