すべてのリージョンで同じキーペアファイルを使用できますか?sshアクセスをできるだけシンプルにしたいと思います。
リージョンごとに1つのファイルを設定しました。同じファイルを別の地域にアップロードしようとしましたが、期待どおりに機能しませんでした。
すべてのリージョンで同じキーペアファイルを使用できますか?sshアクセスをできるだけシンプルにしたいと思います。
リージョンごとに1つのファイルを設定しました。同じファイルを別の地域にアップロードしようとしましたが、期待どおりに機能しませんでした。
その間、これは独自のキーペアをインポートすることで有効になりました。紹介記事「新しいAmazon EC2機能:独自のキーペアを持参する」を参照してください。
これで、 Amazon EC2インスタンスで使用するために、独自のRSAキーペア(正確にはパブリックハーフ)をインポートできます。
なぜあなたはこれをしたいのですか?ここにいくつかの理由があります:
- 信頼-独自のキーペアをインポートすることで、キーを完全に制御できるようになります。
- セキュリティ-秘密鍵が有線で送信されたことは一度もないと確信できます。
- 複数のリージョンの管理-複数のAWSリージョンで同じ公開鍵を使用できます。 [強調鉱山]
このアプローチは確かに非常に有益/便利です-私はすでにしばらくそれを使用しており、複数のリージョンとアカウントでEC2の使用を大幅に簡素化しました。
Eric Hammondは、彼の記事「 AmazonEC2へのパーソナルsshキーのアップロード」で詳細と短いチュートリアルを提供しています。
Amazonは最近、独自のssh公開鍵をEC2にアップロードする機能を開始しました。これにより、新しいインスタンスが起動されたときにそれを渡すことができます。これ以前は、Amazonによって生成されたsshキーペアを常に使用する必要がありました。
したがって、これを達成するために必要な(いくつかの簡単な)手順に関する彼の記事に従うことをお勧めします。
独自のRSA公開鍵をインポートできる場合は、Amazonで生成された鍵をリージョン間で共有できます。
AWSコンソールでsshキーペアを作成し、このキーペアを他のすべてのリージョンにアップロードする場合。
コンソールで新しいsshキーペアを作成するか、すでに所有しているものを使用します。
ssh秘密鍵からssh公開鍵を生成します(pem> pub)
$ 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
AWSで生成されたキーは、別のリージョンに転送できます。
このコマンドを使用する
ec2-import-keypair keypair-name --public-key-file ~/.ssh/authorized_keys --region aws-region
上記の手順で、AWSで作成したキーをシンガポールリージョンからオレゴンリージョンに転送しましたが、同じキーが完全に機能しました。
このリンクにもアクセスしてください:
aws cli
を使用して、キーペアを別のリージョンに転送することもできます。
aws ec2 import-key-pair --key-name my-key --public-key-material file://~/.ssh/id_rsa.pub --region my-region
詳細については、GitHubでこの問題を参照してください。
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)**
コピーする必要のある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
また、これを拡張してリージョンリストを実行し、リージョンのリストを動的に取得することもできます...
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