我无法访问使用C ++ run_request.SetKeyName

时间:2019-04-23 02:33:07

标签: c++ amazon-ec2 ssh aws-sdk-cpp

当我使用C ++ SDK创建AWS EC2实例(遵循其示例程序)并添加run_request.SetKeyName(sKeyName)时,该实例的密钥名称显示在AWS Web控制台中,但SSH超时而不是超时连接到实例。

如果我使用相同的参数(除指定相同的已定义键名之外的默认值)创建实例,但是使用AWS Web控制台,SSH会连接。

键名确实在Web控制台中显示为可用资产。该实例确实显示为正在运行。我没有列出文件类型,仅列出了“ test30”,如Web控制台EC2启动对话框中所示。

通常,搜索StackOverflow可以找到答案,但是这次没有运气。

有人可以建议我需要做什么吗?我对示例代码所做的唯一更改是添加了SetKeyName()函数。

此代码来自AWS EC2 Cpp SDK:

Aws::EC2::Model::RunInstancesRequest run_request;
run_request.SetImageId(ami_id);
run_request.SetInstanceType(Aws::EC2::Model::InstanceType::t1_micro);
run_request.SetMinCount(1);
run_request.SetMaxCount(1);
run_request.SetKeyName(sshKeyName);

auto run_outcome = ec2.RunInstances(run_request);
if (!run_outcome.IsSuccess())

该实例确实在运行,但是尝试与SSH通信超时。任何帮助将不胜感激。


更多信息:使用AWS CLI创建具有相同规格的实例也存在相同的问题。同样,使用与工作方式相同的ssh命令(不同的ip地址除外)测试此命令。仍然没有成功。

我们需要指定的密钥名称与AWS Web控制台上显示的密钥名称不同吗?

0 个答案:

没有答案