:doc:`EC2 <../../ec2>` / Client / describe_key_pairs

******************
describe_key_pairs
******************



.. py:method:: EC2.Client.describe_key_pairs(**kwargs)

  

  Describes the specified key pairs or all of your key pairs.

   

  For more information about key pairs, see `Amazon EC2 key pairs <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html>`__ in the *Amazon EC2 User Guide*.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeKeyPairs>`_  


  **Request Syntax**
  ::

    response = client.describe_key_pairs(
        KeyNames=[
            'string',
        ],
        KeyPairIds=[
            'string',
        ],
        IncludePublicKey=True|False,
        DryRun=True|False,
        Filters=[
            {
                'Name': 'string',
                'Values': [
                    'string',
                ]
            },
        ]
    )
    
  :type KeyNames: list
  :param KeyNames: 

    The key pair names.

     

    Default: Describes all of your key pairs.

    

  
    - *(string) --* 

    

  :type KeyPairIds: list
  :param KeyPairIds: 

    The IDs of the key pairs.

    

  
    - *(string) --* 

    

  :type IncludePublicKey: boolean
  :param IncludePublicKey: 

    If ``true``, the public key material is included in the response.

     

    Default: ``false``

    

  
  :type DryRun: boolean
  :param DryRun: 

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is ``DryRunOperation``. Otherwise, it is ``UnauthorizedOperation``.

    

  
  :type Filters: list
  :param Filters: 

    The filters.

     

    
    * ``key-pair-id`` - The ID of the key pair.
     
    * ``fingerprint`` - The fingerprint of the key pair.
     
    * ``key-name`` - The name of the key pair.
     
    * ``tag-key`` - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.
     
    * ``tag``:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key ``Owner`` and the value ``TeamA``, specify ``tag:Owner`` for the filter name and ``TeamA`` for the filter value.
    

    

  
    - *(dict) --* 

      A filter name and value pair that is used to return a more specific list of results from a describe operation. Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs.

       

      If you specify multiple filters, the filters are joined with an ``AND``, and the request returns only results that match all of the specified filters.

       

      For more information, see `List and filter using the CLI and API <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Filtering.html#Filtering_Resources_CLI>`__ in the *Amazon EC2 User Guide*.

      

    
      - **Name** *(string) --* 

        The name of the filter. Filter names are case-sensitive.

        

      
      - **Values** *(list) --* 

        The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an ``OR``, and the request returns all results that match any of the specified values.

        

      
        - *(string) --* 

        
    
    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'KeyPairs': [
              {
                  'KeyPairId': 'string',
                  'KeyType': 'rsa'|'ed25519',
                  'Tags': [
                      {
                          'Key': 'string',
                          'Value': 'string'
                      },
                  ],
                  'PublicKey': 'string',
                  'CreateTime': datetime(2015, 1, 1),
                  'KeyName': 'string',
                  'KeyFingerprint': 'string'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **KeyPairs** *(list) --* 

        Information about the key pairs.

        
        

        - *(dict) --* 

          Describes a key pair.

          
          

          - **KeyPairId** *(string) --* 

            The ID of the key pair.

            
          

          - **KeyType** *(string) --* 

            The type of key pair.

            
          

          - **Tags** *(list) --* 

            Any tags applied to the key pair.

            
            

            - *(dict) --* 

              Describes a tag.

              
              

              - **Key** *(string) --* 

                The key of the tag.

                 

                Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with ``aws:``.

                
              

              - **Value** *(string) --* 

                The value of the tag.

                 

                Constraints: Tag values are case-sensitive and accept a maximum of 256 Unicode characters.

                
          
        
          

          - **PublicKey** *(string) --* 

            The public key material.

            
          

          - **CreateTime** *(datetime) --* 

            If you used Amazon EC2 to create the key pair, this is the date and time when the key was created, in `ISO 8601 date-time format <https://www.iso.org/iso-8601-date-and-time-format.html>`__, in the UTC time zone.

             

            If you imported an existing key pair to Amazon EC2, this is the date and time the key was imported, in `ISO 8601 date-time format <https://www.iso.org/iso-8601-date-and-time-format.html>`__, in the UTC time zone.

            
          

          - **KeyName** *(string) --* 

            The name of the key pair.

            
          

          - **KeyFingerprint** *(string) --* 

            If you used  CreateKeyPair to create the key pair:

             

            
            * For RSA key pairs, the key fingerprint is the SHA-1 digest of the DER encoded private key.
             
            * For ED25519 key pairs, the key fingerprint is the base64-encoded SHA-256 digest, which is the default for OpenSSH, starting with `OpenSSH 6.8 <http://www.openssh.com/txt/release-6.8>`__.
            

             

            If you used  ImportKeyPair to provide Amazon Web Services the public key:

             

            
            * For RSA key pairs, the key fingerprint is the MD5 public key fingerprint as specified in section 4 of RFC4716.
             
            * For ED25519 key pairs, the key fingerprint is the base64-encoded SHA-256 digest, which is the default for OpenSSH, starting with `OpenSSH 6.8 <http://www.openssh.com/txt/release-6.8>`__.
            

            
      
    
  

  **Examples**

  This example displays the fingerprint for the specified key.
  ::

    response = client.describe_key_pairs(
        KeyNames=[
            'my-key-pair',
        ],
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'KeyPairs': [
            {
                'KeyFingerprint': '1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f',
                'KeyName': 'my-key-pair',
            },
        ],
        'ResponseMetadata': {
            '...': '...',
        },
    }

  