我正在尝试通过堡垒(jump-box)SSH到EC2,但是有问题。我用.ssh/config
进行了尝试,并且成功了。但我想将其作为命令而不是与.ssh/config
一起使用(我知道它的正确方法)
本地主机--->堡垒---> ec2
ubuntu用户存在于bastion&ec2上,密钥(dev-key.pem)仅存在于本地主机上。
我尝试了一堆解决方案:
local-host$ ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /home/ubuntu/automator/dev-key.pem -A -t ubuntu@${bastion} -A -t ssh -o UserKnownHostsFile=/dev/null -o -i /home/ubuntu/automator/dev-key.pem StrictHostKeyChecking=no ubuntu@${ec2} "hostname > /tmp/hostname.txt"
错误:
Permission denied (publickey).
有人可以帮助我吗?
答案 0 :(得分:1)
根据docs,您可以使用ssh -J
选项:
-J [user @] host [:port]通过首先建立到pjump主机的ssh连接[(/ iam / jump-host),然后从那里建立到最终目的地的TCP转发,从而连接到目标主机。
所以您的命令将是:
local-host$ ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /home/ubuntu/automator/dev-key.pem -J ubuntu@${bastion} ubuntu@${ec2} "hostname > /tmp/hostname.txt"