结合使用 Amazon EC2 密钥对与 适用于 PHP 的 Amazon SDK 版本 3
Amazon EC2 使用公有密钥密码系统来加密和解密登录信息。公有密钥加密法使用公有密钥来加密数据。随后,收件人使用私有密钥解密数据。公有和私有密钥被称为密钥对。
以下示例演示如何:
-
使用 CreateKeyPair 创建 2048 位 RSA 密钥对。
-
使用 DeleteKeyPair 删除指定密钥对。
-
使用 DescribeKeyPairs 描述一个或多个密钥对。
适用于 PHP 的 Amazon SDKGitHub 上提供了
凭证
运行示例代码之前,请配置您的 Amazon 凭证,如 通过适用于 PHP 的 Amazon SDK 版本 3 使用 Amazon 进行身份验证 中所述。然后导入 适用于 PHP 的 Amazon SDK,如 安装适用于 PHP 的 Amazon SDK 版本 3 中所述。
创建密钥对
导入。
require 'vendor/autoload.php';
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $keyPairName = 'my-keypair'; $result = $ec2Client->createKeyPair(array( 'KeyName' => $keyPairName )); // Save the private key $saveKeyLocation = getenv('HOME') . "/.ssh/{$keyPairName}.pem"; file_put_contents($saveKeyLocation, $result['keyMaterial']); // Update the key's permissions so it can be used with SSH chmod($saveKeyLocation, 0600);
删除密钥对
导入。
require 'vendor/autoload.php';
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $keyPairName = 'my-keypair'; $result = $ec2Client->deleteKeyPair(array( 'KeyName' => $keyPairName )); var_dump($result);
描述密钥对
导入。
require 'vendor/autoload.php';
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $result = $ec2Client->describeKeyPairs(); var_dump($result);