ssh 通过具有密钥的网关跳转到动态服务器

ssh 通过具有密钥的网关跳转到动态服务器

我正在尝试通过内部服务器 ssh 到 ec2 实例,该服务器实际上拥有可以访问计算机的密钥。

目标机器没有固定的IP,即它是一台beanstalk机器,所以我有一个脚本可以返回我所需环境的ip。

到目前为止,我有以下内容,但我似乎无法让它工作:

# The gateway machine. I can ssh this directly from my machine.
Host production
     HostName <ip>
     User <user>

# The ip returned by the instancefinder can only be ssh'ed to via the gateway server ie, "production"
Host production-eb:*
     User ec2-user
     ProxyCommand ssh production nc -q 10 -w 10 $(~/bin/instancefinder %h | tail -n1) %p

如果我提供IdentityFile配置production-eb:*,它会在我自己的机器上查找它。如何让它在网关机器上使用此密钥?

如果这不是让它发挥作用的方法,我该怎么办?

答案1

如果我为生产 eb:* 配置提供 IdentityFile,它会在我自己的计算机上查找它。如何让它在网关机器上使用此密钥?

您应该将密钥放在本地计算机上,这是存储私钥的受信任位置。如果你的桌子下面没有网关机器,我不会认为它是可信的。

这是预期的行为,因为网关只是跳转盒,并且该机器上运行的唯一内容是命令netcat,如您所见。不过,有一种方法可以解决这个问题。我相信您可以在没有代理命令的情况下使用转发:

ssh -tt production ssh -tti path/to.key $(~/bin/instancefinder %h | tail -n1)

相关内容