我正在尝试设置一个 ssh 隧道/代理配置,以便我能够访问私有 API,以便我可以对其进行测试。
该 API 托管在 AWS API Gateway 中,并根据设计配置为仅可从部署了 lambda 的私有子网访问。为了进行测试,我在这个子网中有一个 EC2 (Amazon Linux 2023),在公共子网中有一个堡垒/跳转主机 EC2。通过这种机制,我可以通过 ssh(通过堡垒访问私有主机)和使用 curl 来访问私有 API。
现在我需要扩展此配置,以便我可以通过 HTTP 从本地计算机访问 API(我需要能够使用 Python 请求客户端访问它,但这并不重要 - 我们只能说它是理解代理的东西,并且可以在此配置中说服它忽略 SSL 证书错误)。我想我需要在私有 EC2 上设置一个代理(我相信 SG 规则限制来自白名单 IP 的人员对此的访问),然后从我的本地通过 ssh 隧道连接到它。
但是,我对通过单个 ssh 命令执行此操作的各种选项感到困惑。我知道图中的所有部分都配置正确,但我不知道如何在本地运行 ssh 命令才能使其正常工作。
我的本地系统是 MacBook,并且有这个 ssh:
$ ssh -V
OpenSSH_8.6p1, LibreSSL 3.3.6