Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to send request through an SSH host

Tags:

curl

ssh

postman

Intro

I am in a machine A, there is an middle machine(Jump Server) named B, and a 'outside' machine C. Since I can not connect C directly, but I can ssh login to B.

For now i will firstly ssh login to B, then send a request from B, eg:

$ ssh myname@<ip_B> -p <port_B>
myname@<ip_B>'s password:
Last login: Tue Aug  7 10:14:21 2018 from ...

After I login to B I sent post using curl.

[myname@<ip_B>]$ curl -X POST http://<ip_C>:<port_C>/<route> -F 'my_post_key=my_post_value'

Question

  • I wonder if I can use B as an SSH host and send my request From A directly using curl?
  • Since I am using Postman, is there any solution in Postman ?
like image 917
Leoli Avatar asked Aug 07 '18 07:08

Leoli


1 Answers

You could use a tunnel, something like this:

$ ssh -N -L 8080:machine-C:80 machine-B

The option -L will do a local port forwarding from port 8080 (machine-A) to port 80 in machine-C going through machine-B.

Then from machine-A:

$ curl -H "host: example.com" 0:8080

You may need to pass the host header in case the machine-C is hosting multiple sites.

Once the tunnel is up, in postman you could use 127.0.0.1:8080

like image 119
nbari Avatar answered Oct 25 '22 02:10

nbari