我正在尝试通过内部服务器 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)