

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 從Lightsail快照啟動的安全 Amazon EC2 執行個體
<a name="amazon-lightsail-securing-linux-unix-amazon-ec2-instances"></a>

Amazon Lightsail 和 Amazon Elastic Compute Cloud (Amazon EC2) 使用公有金鑰加密法將登入資訊進行加密及解密。公有金鑰加密法使用公有金鑰將密碼等資料加密，再由收件人使用私有金鑰將資料解密。公有金鑰和私有金鑰稱為金鑰對。

當您將 Linux 或 Unix Lightsail 執行個體匯出至 EC2，新的 EC2 執行個體會包含來自 Lightsail 服務的剩餘金鑰。基於安全最佳實務，您應該從執行個體移除未使用的金鑰。

為了改善從 Lightsail 快照建立之 EC2 中的 Linux 或 Unix 執行個體安全性，建議您在建立執行個體後執行以下動作：
+ 如果您使用 Lightsail 預設金鑰連接至 Lightsail 中的來源執行個體，請將其移除和取代。如果您使用自己的金鑰連接至執行個體，或者您於 Lightsail 主控台為執行個體建立了金鑰，則在 Amazon EC2 執行個體中不會出現 Lightsail 預設金鑰。
+ 移除 Lightsail 系統金鑰，亦即 `lightsail_instance_ca.pub` 金鑰。在 Linux 和 Unix 執行個體上的此金鑰可讓 Lightsail 瀏覽器型 SSH 用戶端連接。當使用 Lightsail 主控台或 Lightsail API 中的**建立 Amazon EC2 執行個體**頁面來建立 EC2 執行個體時，系統會自動移除 `lightsail_instance_ca.pub` 金鑰。

**內容**
+ [使用 Amazon EC2 建立私有金鑰](#create-a-private-key-using-ec2)
+ [使用 PuTTYgen 建立公開金鑰](#create-the-public-key-using-puttygen)
+ [在 Amazon EC2 中連線至 Linux 或 Unix 執行個體](#connect-to-your-linux-or-unix-instance-in-amazon-ec2)
+ [新增公開金鑰至執行個體並測試連線](#add-the-public-key-to-your-instance-and-test)
+ [移除 Lightsail 預設金鑰](#remove-the-lightsail-default-key)
+ [移除 Lightsail 系統金鑰](#remove-the-lightsail-system-ssh-key)

## 使用 Amazon EC2 建立私有金鑰
<a name="create-a-private-key-using-ec2"></a>

使用 Amazon EC2 主控台建立可用於取代 Lightsail 預設金鑰對的新金鑰對。

**使用 Amazon EC2 建立私有金鑰**

1. 登入 [Amazon EC2 主控台](https://console.aws.amazon.com/ec2/)。

1. 從左側導覽窗格選擇 **Key Pairs (金鑰對)**。

1. 選擇 **Create key pair (建立金鑰對)**。  
![Amazon EC2 主控台中的金鑰對。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-ec2-console-key-pairs.png)

1. 在金鑰**對名稱文字方塊中輸入金鑰的名稱**，然後選擇**建立金鑰對**。如需在 Amazon EC2 中建立金鑰對的詳細資訊，請參閱《Amazon *Elastic Compute Cloud 使用者指南*》中的[為您的 Amazon EC2 執行個體建立金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html)。

   新的私密金鑰會自動下載。記下私密金鑰儲存的位置。您會在本指南以下的*使用 PuTTYgen 建立公開金鑰*部分需要它來建立公開金鑰。  
![在 Amazon EC2 主控台中建立金鑰對。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-ec2-console-create-key-pair.png)

## 使用 PuTTYgen 建立公開金鑰
<a name="create-the-public-key-using-puttygen"></a>

PuTTYgen 是一種工具，包含於 PuTTY。使用 PuTTYgen 產生公開金鑰文字，而您會在本指南稍後將其新增至執行個體。

**注意**  
如需有關設定 PuTTY 以連接至 Linux 或 Unix 執行個體的詳細資訊，請參閱[連接至透過 Lightsail 快照建立的 Amazon EC2 Linux 或 Unix 執行個體](amazon-lightsail-connecting-to-linux-unix-amazon-ec2-instances.md)。

**若要使用 PuTTYgen 建立公開金鑰**

1. 啟動 PuTTYgen。

   例如，依序選擇 **Windows Start (Windows 開始)** 功能表、**All Programs (所有程式)**、**PuTTY (PuTTY)** 和 **PuTTYgen (PuTTYgen)**。  
![PuTTY 金鑰產生器。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/puttygen-key-generator.png)

1. 選擇 **Load** (載入)。

   根據預設，PuTTYgen 只會顯示副檔名為 .PPK 的檔案。若要尋找 .PEM 檔案，請選擇顯示所有檔案類型的選項。  
![將 Lightsail 私密金鑰載入到 PuTTY 金鑰產生器。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-putty-load-ec2-private-key.png)

1. 前往先前在本指南中建立的私密金鑰位置。選擇私密金鑰，接著選擇 **Open (開啟)**。

1. 在 PuTTYgen 確認您成功匯入金鑰後，請選擇 **OK (確定)**。

1. 反白 **Public key (公開金鑰)** 文字方塊的內容並複製到剪貼簿 (若您使用 Windows 請按 **Ctrl\+C (Ctrl\+C)**，若您使用 macOS 則按 **Cmd\+C (Cmd\+C)**)。

   開啟文字編輯器，例如 Notepad 或 TextEdit，並將公開金鑰文字貼入 (若您使用 Windows 請按 **Ctrl\+V**，使用 macOS 則按 **Cmd\+V**)。將公開金鑰文字存檔；您稍後在本指南中會需要。  
![PuTTY 金鑰產生器。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-putty-key-generator.png)

1. 繼續本指南的[在 Amazon EC2 中連接至 Linux 或 Unix 執行個體](#connect-to-your-linux-or-unix-instance-in-amazon-ec2)一節，以連接至 EC2 執行個體並新增公有金鑰。

## 在 Amazon EC2 中連線至 Linux 或 Unix 執行個體
<a name="connect-to-your-linux-or-unix-instance-in-amazon-ec2"></a>

使用 SSH 連接至 Amazon EC2 中的 Linux 或 Unix 執行個體，以移除 Lightsail 預設金鑰和系統金鑰。如需詳細資訊，請參閱[連接至透過 Amazon Lightsail 快照建立的 Amazon EC2 中的 Linux 或 Unix 執行個體](amazon-lightsail-connecting-to-linux-unix-amazon-ec2-instances.md)。

在 Amazon EC2 中連接至執行個體之後，繼續本指南的[新增公有金鑰至執行個體並測試連線](#add-the-public-key-to-your-instance-and-test)一節。

## 新增公開金鑰至執行個體並測試連線
<a name="add-the-public-key-to-your-instance-and-test"></a>

公開金鑰內容儲存於 Linux 和 Unix 執行個體上的 `~/.ssh/authorized_keys` 檔案。編輯檔案以從 Amazon EC2 中的 Linux 或 Unix 執行個體中移除和取代 Lightsail 預設金鑰。

**新增公開金鑰至執行個體和測試連線**

1. 建立到執行個體的 SSH 連線後，輸入下列命令以使用 Vim 文字編輯器編輯 `authorized_keys` 檔案。

   ```
   sudo vim ~/.ssh/authorized_keys
   ```
**注意**  
這些步驟使用 Vim 做為示範。然而，您可以針對這些步驟使用任何文字編輯器。  
![Lightsail 預設金鑰。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-lightsail-default-ssh-key.png)

1. 按 `I` 鍵進入 Vim 編輯器的插入模式。

1. 在 Lightsail 預設金鑰之後輸入額外的行。

1. 複製和貼上您先前在本指南中儲存的公開金鑰文字。

   結果應如下列範例所示：  
![Lightsail 預設金鑰。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-lightsail-default-ssh-key-and-new-key.png)

1. 按 `ESC` 鍵，然後輸入 `:wq!` 以儲存您的編輯並退出 Vim。

1. 輸入下列命令以重新啟動 Open SSH 伺服器：

   ```
   sudo /etc/init.d/sshd restart
   ```

   您應該會看到類似以下的結果：  
![Lightsail 預設金鑰。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-restarting-sshd.png)

   新的公開金鑰現在已新增至您的執行個體。若要測試新的金鑰對，請與執行個體中斷連線。設定 PuTTY 以使用新的私密金鑰，而不是 Lightsail 預設金鑰。如果您能夠成功使用新的金鑰對連接到執行個體，請繼續前往本指南的[移除 Lightsail 預設金鑰](#remove-the-lightsail-default-key)一節，以移除 Lightsail 預設金鑰。

## 移除 Lightsail 預設金鑰
<a name="remove-the-lightsail-default-key"></a>

在新增新的公開金鑰至執行個體後移除 Lightsail 預設金鑰，並使用新的金鑰對成功連接。

**若要移除 Lightsail 預設金鑰**

1. 建立到執行個體的 SSH 連線後，輸入下列命令以使用 Vim 文字編輯器編輯 `authorized_keys file`。

   ```
   sudo vim ~/.ssh/authorized_keys
   ```

1. 按 `I` 鍵進入 Vim 編輯器的插入模式。

1. 刪除以 `LightsailDefaultKeyPair` 結尾的行。此為 Lightsail 預設金鑰。  
![Lightsail 預設金鑰。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-lightsail-default-delete-ssh-key.png)

1. 按 `ESC` 鍵，然後輸入 `:wq!` 以儲存您的編輯並退出 Vim。

1. 輸入下列命令以重新啟動 Open SSH 伺服器：

   ```
   sudo /etc/init.d/sshd restart
   ```

   您應該會看到類似以下的結果：  
![Lightsail 預設金鑰。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-restarting-sshd.png)

   Lightsail 預設金鑰現在已從您的執行個體移除。現在，執行個體會拒絕使用 Lightsail 預設金鑰的連線。繼續前往本指南的[移除 Lightsail 系統金鑰](#remove-the-lightsail-system-ssh-key)一節，以移除 Lightsail 系統金鑰。

## 移除 Lightsail 系統金鑰
<a name="remove-the-lightsail-system-ssh-key"></a>

在 Linux 和 Unix 執行個體上的 Lightsail 系統金鑰 (亦即 `lightsail_instance_ca.pub` 金鑰) 可讓 Lightsail 瀏覽器型 SSH 用戶端連接。執行下列步驟，在 Amazon EC2 中移除 Linux 或 Unix 執行個體的 `lightsail_instance_ca.pub` 金鑰，並編輯 `/etc/ssh/sshd_config` 檔案。`/etc/ssh/sshd_config` 檔案會定義到執行個體之 SSH 連線的參數。

**若要移除 Lightsail 系統金鑰**

1. 在連接至執行個體的 SSH 終端機視窗中，輸入下令命令以移除 `lightsail_instance_ca.pub` 金鑰：

   ```
   sudo rm –r /etc/ssh/lightsail_instance_ca.pub
   ```

1. 輸入下列命令以使用 Vim 文字編輯器編輯 `sshd_config` 檔案。

   ```
   sudo vim /etc/ssh/sshd_config
   ```

1. 按 `I` 鍵進入 Vim 編輯器的插入模式。

1. 從檔案刪除以下文字 (若存在)：

   ```
   TrustedUserCAKeys /etc/ssh/lightsail_instance_ca.pub
   ```

1. 按 `ESC` 鍵，然後輸入 `:wq!` 以儲存您的編輯並退出 Vim。

1. 輸入下列命令以重新啟動 Open SSH 伺服器：

   ```
   sudo /etc/init.d/sshd restart
   ```

   您應該會看到類似以下的結果：  
![Lightsail 預設金鑰。](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-restarting-sshd.png)

   `lightsail_instance_ca.pub` 金鑰現在已從您的執行個體移除。相關聯的 `sshd_config` 檔案已更新以排除該金鑰。