スポンサードリンク

PythonでEC2用SSHログイン補助スクリプト作った (EC2 SSH LoginHelper)

EC2インスタンスが増えてくると、sshのconfigを設定するのが面倒くさくなりますよね!
AWSのアカウントが増えたりなんかしたらもうやってらんない。

そんなダルイ状況を解決するためにスクリプト作りました。
EC2インスタンスログインを補助します。

github: https://github.com/wgkoro/EC2-Login-Helper

スクリプトを実行すると、立ち上がっているインスタンスを下記のように一覧表示します。

識別番号(連番), インスタンス名, Public DNS, インスタンスイメージID, インスタンスID, sshプライベートキー名
————————————————————
0: hoge1, ec2-xxxxxxxxxx.compute.amazonaws.com, ami-xxxx, i-xxxx, private_key.pem
————————————————————
1: fugafuga, ec2-xxxxxxxxxx.compute.amazonaws.com, ami-xxxx, i-xxxx, private_key.pem
————————————————————

この後、接続したいインスタンスの識別番号を打ち込むよう促されます。
上表の先頭にある番号を打ち込むと、そのインスタンスへSSH接続します。

下記は対応済。
・AWSマルチアカウント
・ログインユーザー個別指定
・接続ポート個別指定
・接続リージョン個別指定

必要環境 ==========

・Python 2.6かそれ以降
・botoパッケージ (easy_install boto か pip install boto でインストール可能)

初期設定 ==========

スクリプトを開き、下記部分を編集して下さい。

SSH_DIR:

SSHのプライベートキーが格納されているディレクトリ

DEFAULT_USER:

ユーザー指定が無い時に使うユーザー名

DEFAULT_PORT:

ポート指定が無い時に使うポート番号

AWS_DATA:

AWSのアクセスキー、シークレットキー、デフォルトで接続するリージョンIDを指定。
リージョンID = 辞書’REGION’のキー。東京なら’t’を指定。

‘default’はアカウント指定が無い場合に呼び出されます。
defaultのaccess_key, secret_keyが空の場合、
環境変数AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEYから自動で読み出されます。

複数のAWSアカウントを設定する場合は

のようにして下さい。
※AWS_DATAのキーは好きな文字列指定できます

使い方 ==========

基本は下記でOK。
$ python ec2loginhelper.py

AWSの別アカウントを指定したい場合は、第一引数にAWS_DATAのキーを指定して下さい。
$ python ec2loginhelper.py account_2

ポート番号の変更は-pオプションで。
$ python ec2loginhelper.py -p 1234

リージョンの変更は-rオプションで。
$ python ec2loginhelper.py account_3 -r s
↑アカウント’account_3′のシンガポールリージョンへ接続

おまけ ==========

このスクリプトをec2.pyとか適当に短いファイル名にして、
ローカルのパスが通っている場所へ放り込むと、
どこからでもec2.pyで接続できるので幸せになれるかもです。

Facebookページ / スポンサードリンク
2012-02-10 | Posted in ProgramNo Comments » 
Comment





Comment