Class: AWS::EC2::KeyPairCollection

Inherits:
Collection show all
Defined in:
lib/aws/ec2/key_pair_collection.rb

Overview

Represents all key pairs in your account. You can use this collection to create, import and find key pairs.

Instance Method Summary collapse

Methods included from FilteredCollection

#filter, #initialize

Instance Method Details

#[](key_name) ⇒ KeyPair



57
58
59
# File 'lib/aws/ec2/key_pair_collection.rb', line 57

def [] key_name
  super
end

#create(key_name) ⇒ KeyPair



26
27
28
# File 'lib/aws/ec2/key_pair_collection.rb', line 26

def create key_name
  create_or_import(:create_key_pair, :key_name => key_name)
end

#each(&block) ⇒ nil

Yields once for each key pair in your account.



63
64
65
66
67
68
69
70
71
# File 'lib/aws/ec2/key_pair_collection.rb', line 63

def each &block
  response = filtered_request(:describe_key_pairs)
  response.key_set.each do |kp|
    yield(KeyPair.new(kp.key_name,
                      :fingerprint => kp.key_fingerprint,
                      :config => config))
  end
  nil
end

#import(key_name, public_key) ⇒ KeyPair

Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with #create, in which EC2 creates the key pair and gives the keys to you (EC2 keeps a copy of the public key). With ImportKeyPair, you create the key pair and give EC2 just the public key. The private key is never transferred between you and EC2.

Supported formats:

  • OpenSSH public key format (e.g., the format in ~/.ssh/authorized_keys)

  • Base64 encoded DER format

  • SSH public key file format as specified in RFC4716

DSA keys are not supported. Make sure your key generator is set up to create RSA keys. Supported lengths: 1024, 2048, and 4096.



50
51
52
53
54
# File 'lib/aws/ec2/key_pair_collection.rb', line 50

def import key_name, public_key
  create_or_import(:import_key_pair, 
    :key_name => key_name,
    :public_key_material => Base64.encode64(public_key.to_s))
end