web-dev-qa-db-ja.com

ファブリック経由でキーペア(.pemファイル)を使用してEC2に接続する

Pemファイルを使用してEC2に接続する方法を示すFabricレシピを持っている人はいますか?

私はこの方法でそれを書いてみました: PythonFabric実行コマンドは "binascii.Error:Incorrect padding"を返します

しかし、run()関数を実行すると、エンコードの問題が発生します。

27
Mickey Cheong

Pemファイルを使用するには、通常、pemをsshエージェントに追加してから、ユーザー名とホストを参照します。

ssh-add ~/.ssh/ec2key.pem
fab -H ubuntu@ec2-Host deploy

または、リンクした例のように、環境情報(キーなし)を指定します。

env.user = 'ubuntu'
env.hosts = [
    'ec2-Host'
]

通常どおり実行します。

fab deploy
42
gak

エンコーディングの問題に対処せずに、EC2のものをssh設定ファイルに入れる可能性があります。

  • 〜/ .ssh/config

または、グローバルの場合:

  • / etc/ssh_config

そこで、ホスト、IPアドレス、ユーザー、識別ファイルなどを指定できるので、次の簡単な問題です。

ssh myhost

例:

Host myhost
  User ubuntu
  HostName 174.129.254.215
  IdentityFile ~/.ssh/mykey.pem

詳細については:man ssh_config

32
Jeff Bauer

あなたができるもう一つのことは、env変数にkey_filenameを設定することです: https://stackoverflow.com/a/5327496/1729558

10
yixu34