我有一个现有的 AWS Ubuntu EC2 实例 ( instance_1 ) 通过公共(public) IP 地址进行远程 ssh 访问,使用我自己的私钥/公钥。我使用控制台从这个实例创建一个 AMI,然后使用这个 AMI 启动一个新的 EC2 实例 (instance_2)。远程 ssh 到 instance_2 (通过它自己的公共(public) IP 地址)然后与 instance_1 完全相同。 .

然后我使用 博托3 创建一个 AMI 而不是控制台,然后启动另一个 EC2 实例 (instance_3)。 instance_3 上的 ssh 身份验证失败(权限被拒绝) .

知道为什么 时的行为会有所不同AMI 是用 boto3 而不是控制台创建的? 与 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 实例的 key 对。

如果一切都失败了(这种情况很少见),您可以分离实例并转入标准卷,然后从另一个实例挂载它以验证或替换 ~/.ssh/authorized_keys .


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!