我可以在所有地区使用相同的密钥对文件吗?我希望尽可能简单地保持ssh访问。
我为每个地区设置了一个文件。我试图在不同的区域上传相同的文件,但它没有按预期工作。
答案 0 :(得分:22)
同时通过导入您自己的密钥对来启用此功能,请参阅介绍性帖子New Amazon EC2 Feature: Bring Your Own Keypair:
您现在可以导入您自己的RSA密钥对(或公共的一半) (准确)用于Amazon EC2个实例。
你为什么要这样做?以下是几个原因:
- 信任 - 通过导入您自己的密钥对,您可以确保拥有 完全控制你的钥匙。
- 安全 - 你可以自信 您的私钥从未通过网络传输。
- 管理多个区域 - 您可以跨多个使用相同的公钥 AWS区域。 [强调我的]
醇>
这种方法非常有益/方便 - 我已经使用了一段时间了,它大大简化了多个地区和帐户的EC2使用。
Eric Hammond在他的文章Uploading Personal ssh Keys to Amazon EC2中提供了更多详细信息和简短的教程:
亚马逊最近推出了上传自己的ssh公钥的功能 到EC2,以便它们可以传递给新的实例 推出。在此之前,你总是必须使用ssh密钥对 由亚马逊生成。
因此,我建议遵循他关于实现这一目标所需的(少数和简单)步骤的文章。
答案 1 :(得分:12)
如果您可以导入自己的RSA公钥,那么您可以跨区域共享亚马逊生成的密钥:
答案 2 :(得分:6)
如果要在AWS控制台中创建ssh密钥对,并将此密钥对上传到所有其他区域。
在控制台中创建一个新的ssh密钥对,或使用您已拥有的密钥对。
从ssh私钥(pem> pub)生成ssh公钥
$ ssh-keygen -y -f ~/.ssh/MySSHKeyPair.pem >> ~/.ssh/MySSHKeyPair.pub
将ssh公钥上传到所有区域。 (从列表中删除已有ssh密钥的区域)
$ for region in us-east-1 us-east-2 us-west-1 us-west-2 ap-south-1 ap-northeast-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 eu-central-1 eu-west-1 eu-west-2 ; do aws ec2 import-key-pair --key-name MySSHKeyPair --public-key-material file://~/.ssh/MySSHKeyPair.pub --region $region ; done
获取所有地区的所有ssh密钥对的列表。
$ for region in us-east-1 us-east-2 us-west-1 us-west-2 ap-south-1 ap-northeast-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 eu-central-1 eu-west-1 eu-west-2 ; do aws ec2 describe-key-pairs --region $region ; done
答案 3 :(得分:5)
AWS生成的密钥可以转移到另一个区域:
使用此命令
ec2-import-keypair keypair-name --public-key-file ~/.ssh/authorized_keys --region aws-region
通过上述步骤,我将AWS创建的密钥从新加坡地区转移到俄勒冈州,同样的密钥对我来说非常合适。
请访问此链接:
答案 4 :(得分:2)
您还可以使用aws cli
将密钥对转移到其他区域。
aws ec2 import-key-pair --key-name my-key --public-key-material file://~/.ssh/id_rsa.pub --region my-region
有关详情,请参阅GitHub上的this issue。
答案 5 :(得分:1)
import os
regions=["us-east-1","us-east-2","us-west-1","us-west-2","ap-east-1","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","ca-central-1" ,"eu-central-1","eu-west-1","eu-west-2","eu-west-3","eu-north-1","sa-east-1"]
for region in regions:
os.system("aws ec2 import-key-pair --key-name rainman_key --public-key-material file://rainman_public.pub --region "+region)**
答案 6 :(得分:0)
将需要复制的pem文件上传到其他区域,然后...
# chmod 400 /home/ec2-user/mydec15a.pem
# ssh-keygen -y -f /home/ec2-user/mydec15a.pem >> ~/.ssh/MySSHKeyPair.pub
# aws ec2 import-key-pair --key-name mydec15a --public-key-material file://~/.ssh/MySSHKeyPair.pub --region us-west-2
答案 7 :(得分:0)
您还可以通过扩展区域列表来动态获取区域列表...
for region in $(aws ec2 describe-regions --all-regions --query "Regions[].{Name:RegionName}" --output text | tr '\n' ' '); do
aws ec2 import-key-pair --key-name MYKEYNAME --public-key-material file://~/.ssh/MY_PUB_KEY.pub --region $region; done