スポンサードリンク

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 でインストール可能)

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

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

# Change these value ============================
SSH_DIR = '/Users/xxxxx/.ssh/'
DEFAULT_USER = 'ec2-user'
DEFAULT_PORT = 22
AWS_DATA = {
    'default'   : {
        'access_key'    : '',
        'secret_key'    : '',
        'region'        : 't',
    },
}
# ==============================================

SSH_DIR:

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

DEFAULT_USER:

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

DEFAULT_PORT:

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

AWS_DATA:

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

REGION = {
    't'     : 'ap-northeast-1', # TOKYO
    's'     : 'ap-southeast-1', # SINGAPORE
    'v'     : 'us-east-1', # US East(Virginia)
    'o'     : 'us-west-2', # US West(Oregon)
    'n'     : 'us-west-1', # US West(N. California)
    'e'     : 'eu-west-1', # EU West(Ireland)
    'sa'    : 'sa-east-1', # S. America(Sao Paulo)
}

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

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

AWS_DATA = {
    'default'   : {
        'access_key'    : '',
        'secret_key'    : '',
        'region'        : 't',
    },
    'account_2'   : {
        'access_key'    : 'ACCESSKEYACCESSKEYACCESSKEY',
        'secret_key'    : 'SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECRETKEY',
        'region'        : 's',
    },
    'account_3'   : {
        'access_key'    : 'ACCESSKEYACCESSKEYACCESSKEY',
        'secret_key'    : 'SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECRETKEY',
        'region'        : 't',
    },
}

のようにして下さい。
※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で接続できるので幸せになれるかもです。


FBページ / スポンサードリンク
 
  1. コメントはありません。

  1. トラックバックはありません。

このブログについて

食べたもの、作ったものや考えたこと、など色々ごった煮で書いていくブログです。
プログラミングやAndroidの話題が多め。

筆者:wg_koro
うちで飼っているしらたまさん
周りからは「ころすけ」と呼ばれてます。
プログラミング好き。
色んなガラクタを作っては捨ての毎日。

» プロフィール詳細
» Twitter (@wg_koro)

RSS Icon RSS購読はこちらからどうぞ!

カレンダー

2013年5月
« 4月    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Facebookページ