如何通过SSH主机发送请求。

13

介绍

我在一台名为A的机器上,有一台名为B的“中间机器”(跳板机),以及一台“外部”的机器C。由于我无法直接连接C,但可以通过ssh登录到B

现在,我将首先通过ssh登录到B,然后从B发送请求,例如:

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

我登录B后,使用curl发送了一条帖子。

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

问题

  • 我想知道是否可以将B用作SSH主机,并直接使用curlA发送请求?
  • 由于我正在使用Postman,在Postman中是否有任何解决方案?
2个回答

21

你可以使用隧道,类似这样:

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

选项-L将从端口8080(机器-A)进行本地端口转发,到机器-C的80端口,经过机器-B

接着从机器-A操作:

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

如果机器C承载多个站点,则您可能需要传递host头。

隧道建立后,在Postman中,您可以使用127.0.0.1:8080


1
第一个ssh命令也在机器A上运行。 - Mohammad Teimori Pabandi

0
使用Postman,可以通过以下步骤轻松完成:
1. 在Postman设置中添加自定义代理配置,确保SSH隧道已经通过AWS CLI的aws ssm start-session命令或ssh -N命令完成。

enter image description here

发送带有所需主机和端点的Http请求

enter image description here

完成了。谢谢!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接