我几天前就开始使用AWS了。
我想使用Cloud Formation服务来部署堆栈,然后能够SSH到已部署的实例。在创建模板时,我没有看到包含密钥对的选项。
根据this,我需要从一开始就拥有一对密钥。
如何使用密钥对部署堆栈,以便在部署后可以将其SSH到其中?
我还尝试通过在参数:
下添加KeyName部分来更改文本文件中的模板"Parameters" : {
"AccessControl" : {
"Description" : " The IP address range that can be used to access the CloudFormer tool. NOTE: We highly recommend that you specify a customized address range to lock down the tool.",
"Type": "String",
"MinLength": "9",
"MaxLength": "18",
"Default": "0.0.0.0/0",
"AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})",
"ConstraintDescription": "must be a valid IP CIDR range of the form x.x.x.x/x."
}
"KeyName" : {
"Description" : " Name of an existing EC2 KeyPair to enable SSH access to the instances",
"Type": "String",
"MinLength": "1",
"MaxLength": "64",
"AllowedPattern": "[-_ a-zA-Z0-9]*",
"ConstraintDescription": "Can contain only alphanumeric characters, spaces, dashes, and underscores."
}
这会导致以下错误:"模板验证错误:模板格式错误:JSON格式不正确。"
我希望能够远程进入Linux和Windows实例。
答案 0 :(得分:1)
你可以使用"默认"指定默认密钥名称
"KeyPair" : {
"Type" : "String",
"Default" : "MyKeyName",
"Description" : "Enter a keypair for this instance"
}
然后在"属性"
"Properties": {
"KeyName": { "Ref": "KeyPair" },
答案 1 :(得分:0)
您需要创建密钥,然后使用密钥的名称作为Cloud Formation脚本的参数。
JSON错误可能是由于AccessControl属性值关闭后缺少逗号。
http://jsonlint.com/处有一个JSON验证器会突出显示这些类型的格式错误。