ssh通过带有密钥的bastion连接到VM



我试图通过bastion(跳转框(将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).

有人能帮我吗?

根据文档,您可以使用ssh -J选项:

-J[user@]host[:port]首先通过ssh连接到pjump host[(/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"

最新更新