当我使用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控制台上显示的密钥名称不同吗?