SSH 密钥在隧道中丢失

SSH 密钥在隧道中丢失

我正在尝试通过具有隧道的 NAT 实例连接到我的私有 VPC 实例

我定义 -A 使 NAT 实例成为我的密钥的代理,定义 -i 使密钥文件成为代理。尝试

ssh -A -i 'path_to_key' [email protected]

它可以工作并连接到我的 NAT,但尝试通过隧道连接到我的私有实例时,它总是会因为密钥问题而失败

   ssh -A -i 'path_to_key' [email protected] ssh -t -t ubuntu@private_instance_ip

我认为它不会将我的密钥从 NAT 传递到私有实例。

当执行ssh-add path_to_key并运行相同的命令(不包括 -i 部分)时,它也能正常工作。

如何让我的 NAT 将 -i 参数中的密钥传递给私有实例?

答案1

ssh -A选项仅适用于您已加载到代理中的密钥,-i 没有自动执行。换句话说,您必须拥有 ssh-agent 和ssh-add密钥。

ssh-add 'path_to_key'

顺便提一下,你用-t错了地方——你的内部连接将有一个 tty,但不知道正确的参数(例如窗口大小)。该选项对于连接(即ssh -t server1 ssh server2),那么内部连接就变得没有必要了。


还有另一种方法可以建立两跳连接。除了在代理上运行 ssh 之外,您还可以使用 SSH 的 TCP 转发功能在本地运行它:

ssh -i 'path' -o ProxyCommand="ssh -W %H:%P [email protected]" ubuntu@private_instance

这根本不需要-A代理,因为您的客户端直接连接到私有实例。

相关内容