Amazon web services ssh身份验证无法从使用boto3创建的ami启动的aws ec2实例
我有一个现有的AWS Ubuntu EC2实例(Amazon web services ssh身份验证无法从使用boto3创建的ami启动的aws ec2实例,amazon-web-services,ssh,boto,boto3,ec2-ami,Amazon Web Services,Ssh,Boto,Boto3,Ec2 Ami,我有一个现有的AWS Ubuntu EC2实例(实例_1),使用我自己的私钥/公钥,通过公共IP地址进行远程ssh访问。我使用控制台从这个实例创建一个AMI,然后使用这个AMI启动一个新的EC2实例(instance_2)。远程ssh到实例_2(通过自己的公共IP地址)的工作方式与实例_1完全相同 然后我使用boto3创建一个AMI而不是控制台,然后启动另一个EC2实例(instance\u3)。实例3上的ssh身份验证失败(权限被拒绝) 知道当使用boto3而不是控制台创建AMI时行为不同的原
实例_1
),使用我自己的私钥/公钥,通过公共IP地址进行远程ssh访问。我使用控制台从这个实例创建一个AMI,然后使用这个AMI启动一个新的EC2实例(instance_2
)。远程ssh到实例_2
(通过自己的公共IP地址)的工作方式与实例_1
完全相同
然后我使用boto3创建一个AMI而不是控制台,然后启动另一个EC2实例(instance\u3
)。实例3
上的ssh身份验证失败(权限被拒绝)
知道当使用boto3而不是控制台创建AMI时行为不同的原因吗?boto3使用的凭据允许管理员使用策略进行完全访问arn:aws:iam::aws:policy/AdministratorAccess
创建AMI的代码如下:
ec2_client = boto3.client('ec2', region_name=region)
response = ec2_client.create_image(InstanceId=instance_id, Name=ami_name)
new_image_id = response['ImageId']
要诊断问题,首先检查您尝试连接的EC2实例的密钥对
如果所有操作都失败(这很罕见),您可以分离实例并将其转入标准卷,然后从另一个实例装载它以验证或替换
~/.ssh/authorized_keys
请检查关联的密钥对。您可以通过将实例_3分离为实例来检查其ssh密钥,然后从另一个实例装载卷。这将告诉你所有的故事。谢谢@mootmoot这对发现我的问题非常有帮助。原来我把错误的“实例id”传递给了Bot3!请将您的评论作为答案发布,以便我可以接受。