端口转发以避免需要证书

问题描述

我需要在本地设置一个工具,该工具通过 SSH 连接到 EC2 实例以在远程机器上执行分析。问题如下:EC2 需要使用 PEM 证书才能连接,但该工具不支持证书。有没有办法进行端口转发,以便该工具无需密码(或至少无需证书)即可连接到 localhost:2222 之类的内容,然后将流量重定向到 EC2?

我不知道该工具究竟使用了哪些端口,但可以肯定的是,它可以通过 SSH 隧道传输所有流量。

如果您需要更多信息,该工具是 Nvidia Nsight Compute。

我试过了 sh -L 2222:localhost:22 -i mycertificate.pem <username_ec2>@<ip_ec2> 但随后 ssh <username_ec2>@localhost:2222 返回 ssh: Could not resolve hostname localhost:2222: nodename nor servname provided,or not kNown

解决方法

将您的命令修正为:

ssh -p 2222 <username_ec2>@localhost

但是如果您像这样进行端口转发,仍然需要证书:

ssh -L 2222:localhost:22 -i mycertificate.pem <username_ec2>@<ip_ec2>

我会尝试以下操作:

运行另一个仅在本地主机上侦听的 ssh 服务器,并且不需要另一个端口上的证书,例如 2222。See instructions

然后我会像这样移植到它:

ssh -L 2222:localhost:2222 -i mycertificate.pem <username_ec2>@<ip_ec2>

并以同样的方式 ssh 到它:

ssh -p 2222 <username_ec2>@localhost
,

您可以使用 TCP 反向代理执行此操作。反向代理对于其他高级协议也很有用,并且也可以由多个服务器/服务共享和使用。我个人使用了一个,因为它帮助我稍微巩固了我的 DMZ。我过去曾将 HAProxy 和 NGINX 用于此类事情。由于您在这里没有使用 HTTP,您需要确保代理在 TCP 模式下运行,用于将用于此连接的特定前端和后端。代理可以转发流量并根据您的需要申请或剥离证书。