

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

# EC2 Serial Console for 執行個體
<a name="ec2-serial-console"></a>

使用 EC2 序列主控台，您可以存取 Amazon EC2 執行個體的序列埠，您可以使用此連接埠來疑難排解開機、網路設定和其他問題。序列主控台不需要您的執行個體具有任何網路功能。使用序列主控台，您可以為執行個體輸入命令，就好像鍵盤和監視器直接連接到執行個體的序列埠一樣。序列主控台工作階段在執行個體重新開機和停止期間會持續。在重新開機期間，您可以從一開始檢視所有的開機訊息。

依預設，無法存取序列主控台。您的組織必須授與對序列主控台的帳戶存取權，並設定 IAM 政策，以授與使用者對序列主控台的存取權限。可透過使用執行個體 ID、資源標籤和其他 IAM 控制桿，以細微層級控制序列主控台存取。如需詳細資訊，請參閱[設定對 EC2 序列主控台的存取](configure-access-to-serial-console.md)。

您可以透過使用 EC2 主控台或 AWS CLI存取序列主控台。

序列主控台可供免費使用。

**Topics**
+ [EC2 序列主控台的先決條件](ec2-serial-console-prerequisites.md)
+ [設定對 EC2 序列主控台的存取](configure-access-to-serial-console.md)
+ [連線至 EC2 序列主控台](connect-to-serial-console.md)
+ [終止與 EC2 序列主控台的連線](disconnect-serial-console-session.md)
+ [使用 EC2 序列主控台進行 Amazon EC2 執行個體疑難排解](troubleshoot-using-serial-console.md)

# EC2 序列主控台的先決條件
<a name="ec2-serial-console-prerequisites"></a>

**Topics**
+ [AWS 區域](#sc-prereqs-regions)
+ [Wavelength 區域和 AWS Outpost](#sc-prereqs-wavelength-zones-outposts)
+ [本機區域](#sc-prereqs-local-zones)
+ [執行個體類型](#sc-prereqs-instance-types)
+ [授與存取權](#sc-prereqs-configure-ec2-serial-console)
+ [支援瀏覽器型用戶端](#sc-prereqs-for-browser-based-connection)
+ [執行個體狀態](#sc-prereqs-instance-state)
+ [Amazon EC2 Systems Manager](#sc-prereqs-ssm)
+ [設定所選的疑難排解工具](#sc-prereqs-configure-troubleshooting-tool)

## AWS 區域
<a name="sc-prereqs-regions"></a>

全部支援 AWS 區域。

## Wavelength 區域和 AWS Outpost
<a name="sc-prereqs-wavelength-zones-outposts"></a>

不支援。

## 本機區域
<a name="sc-prereqs-local-zones"></a>

所有本地區域皆支援。

## 執行個體類型
<a name="sc-prereqs-instance-types"></a>

支援的執行個體類型：
+ **Linux**
  + 在 Nitro 系統上建置的所有虛擬化執行個體。
  + 所有裸機執行個體，除了：
    + 一般用途：`a1.metal`、`mac1.metal`、`mac2.metal`
    + 加速運算：`g5g.metal`
    + 記憶體最佳化：`u-6tb1.metal`、`u-9tb1.metal`、`u-12tb1.metal`、`u-18tb1.metal`、`u-24tb1.metal`
+ **Windows**

  在 Nitro 系統上建置的所有虛擬化執行個體。在裸機執行個體上不受支援。

## 授與存取權
<a name="sc-prereqs-configure-ec2-serial-console"></a>

您必須完成設定工作，才能向 EC2 序列主控台授與存取權。如需詳細資訊，請參閱[設定對 EC2 序列主控台的存取](configure-access-to-serial-console.md)。

## 支援瀏覽器型用戶端
<a name="sc-prereqs-for-browser-based-connection"></a>

若要[使用以瀏覽器為基礎的用戶端](connect-to-serial-console.md#sc-connect-browser-based-client)連線到序列主控台，您的瀏覽器必須支援 WebSocket。如果您的瀏覽器不支援 WebSocket，請[使用您自己的金鑰和 SSH 用戶端](connect-to-serial-console.md#sc-connect-SSH)連線到序列主控台。

## 執行個體狀態
<a name="sc-prereqs-instance-state"></a>

必須為 `running`。

若執行個體處於 `pending`、`stopping`、`stopped`、`shutting-down`，或 `terminated` 狀態，將無法連線到序列主控台。

如需執行個體狀態的詳細資訊，請參閱 [Amazon EC2 執行個體狀態變更](ec2-instance-lifecycle.md)。

## Amazon EC2 Systems Manager
<a name="sc-prereqs-ssm"></a>

如果執行個體使用 Amazon EC2 Systems Manager，則必須在執行個體上安裝 SSM Agent 3.0.854.0 版或更新版本。如需有關 SSM Agent 的資訊，請參閱 *AWS Systems Manager 使用者指南*中的[使用 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)。

## 設定所選的疑難排解工具
<a name="sc-prereqs-configure-troubleshooting-tool"></a>

若要使用序列主控台對執行個體進行疑難排解，您可以使用 Linux 執行個體上的GRUB 或 SysRq，以及 Windows 執行個體上的特殊管理主控台 (SAC)。在使用這些工具之前，您必須先對要使用工具所在的每個執行個體執行設定步驟。

使用執行個體作業系統的指示來設定您所選之疑難排解工具。

### (Linux 執行個體) 設定 GRUB
<a name="configure-grub"></a>

若要設定 GRUB，請根據用來啟動執行個體的 AMI 選擇下列其中一個程序。

------
#### [ Amazon Linux 2 ]

**在 Amazon Linux 2 執行個體上設定 GRUB**

1. [使用 SSH 連線至您的 Linux 執行個體](connect-to-linux-instance.md)

1. 在 `/etc/default/grub` 中新增或變更下列選項：
   + 設定 `GRUB_TIMEOUT=1`。
   + 新增 `GRUB_TERMINAL="console serial"`。
   + 新增 `GRUB_SERIAL_COMMAND="serial --speed=115200"`。

   以下是 `/etc/default/grub` 的範例。您可能需要根據系統設定來變更組態。

   ```
   GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0"
   GRUB_TIMEOUT=1
   GRUB_DISABLE_RECOVERY="true"
   GRUB_TERMINAL="console serial"
   GRUB_SERIAL_COMMAND="serial --speed=115200"
   ```

1. 執行下列命令來套用更新的組態。

   ```
   [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

------
#### [ Ubuntu ]

**在 Ubuntu 執行個體上設定 GRUB**

1. [連線到您的執行個體](connect-to-linux-instance.md)。

1. 在 `/etc/default/grub.d/50-cloudimg-settings.cfg` 中新增或變更下列選項：
   + 設定 `GRUB_TIMEOUT=1`。
   + 新增 `GRUB_TIMEOUT_STYLE=menu`。
   + 新增 `GRUB_TERMINAL="console serial"`。
   + 移除 `GRUB_HIDDEN_TIMEOUT`。
   + 新增 `GRUB_SERIAL_COMMAND="serial --speed=115200"`。

   以下是 `/etc/default/grub.d/50-cloudimg-settings.cfg` 的範例。您可能需要根據系統設定來變更組態。

   ```
   # Cloud Image specific Grub settings for Generic Cloud Images
   # CLOUD_IMG: This file was created/modified by the Cloud Image build process
   
   # Set the recordfail timeout
   GRUB_RECORDFAIL_TIMEOUT=0
   
   # Do not wait on grub prompt
   GRUB_TIMEOUT=1
   GRUB_TIMEOUT_STYLE=menu
   
   # Set the default commandline
   GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295"
   
   # Set the grub console type
   GRUB_TERMINAL="console serial"
   GRUB_SERIAL_COMMAND="serial --speed 115200"
   ```

1. 執行下列命令來套用更新的組態。

   ```
   [ec2-user ~]$ sudo update-grub
   ```

------
#### [ RHEL ]

**在 RHEL 執行個體上設定 GRUB**

1. [連線到您的執行個體](connect-to-linux-instance.md)。

1. 在 `/etc/default/grub` 中新增或變更下列選項：
   + 移除 `GRUB_TERMINAL_OUTPUT`。
   + 新增 `GRUB_TERMINAL="console serial"`。
   + 新增 `GRUB_SERIAL_COMMAND="serial --speed=115200"`。

   以下是 `/etc/default/grub` 的範例。您可能需要根據系統設定來變更組態。

   ```
   GRUB_TIMEOUT=1
   GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
   GRUB_DEFAULT=saved
   GRUB_DISABLE_SUBMENU=true
   GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto"
   GRUB_DISABLE_RECOVERY="true"
   GRUB_ENABLE_BLSCFG=true
   GRUB_TERMINAL="console serial"
   GRUB_SERIAL_COMMAND="serial --speed=115200"
   ```

1. 執行下列命令來套用更新的組態。

   ```
   [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
   ```

   針對 RHEL 9.2 和較早版本，請使用下列命令。

   ```
   [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

------
#### [ CentOS ]

對於使用 CentOS AMI 啟動的執行個體，預設會針對序列主控台設定 GRUB。

以下是 `/etc/default/grub` 的範例。您的組態可能會視您的系統設定而有所不同。

```
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"
```

------

### (Linux 執行個體) 設定 SysRq
<a name="configure-sysrq"></a>

若要設定 SysRq，您可以針對目前的開機週期啟用 SysRq 命令。若要使設定持續性，您也可以啟用 SysRq 命令以供後續開機使用。

**為目前開機週期啟用所有 SysRq 命令**

1. [連線到您的執行個體](connect-to-linux-instance.md)。

1. 執行下列命令。

   ```
   [ec2-user ~]$ sudo sysctl -w kernel.sysrq=1
   ```

   此設定會在下次重新開機時清除。

**為後續開機啟用所有 SysRq 命令**

1. 建立文件 `/etc/sysctl.d/99-sysrq.conf` 並在您最喜歡的編輯器中開啟。

   ```
   [ec2-user ~]$ sudo vi /etc/sysctl.d/99-sysrq.conf
   ```

1. 新增以下這一行。

   ```
   kernel.sysrq=1
   ```

1. 重新啟動執行個體以套用變更。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 出現 `login` 提示時，輸入您[先前設定](configure-access-to-serial-console.md#set-user-password)之密碼型使用者的使用者名稱，然後按 **Enter**。

1. 出現 `Password` 提示時，輸入密碼，然後按 ** Enter**。

### (Windows 執行個體) 啟用 SAC 和開機功能表
<a name="configure-sac-bootmenu"></a>

**注意**  
如果您在執行個體上啟用 SAC，則依賴密碼擷取的 EC2 服務將無法從 Amazon EC2 主控台運作。Amazon EC2 上的 Windows 啟動代理程式 (EC2Config、EC2Launch v1 和 EC2Launch v2) 倚賴序列主控台執行各種任務。在執行個體上啟用 SAC 時，這些任務不會成功執行。如需 Amazon EC2 啟動代理程式的詳細資訊，請參閱 [設定您的 Amazon EC2 Windows 執行個體](ec2-windows-instances.md)。如果您啟用 SAC，可以稍後停用它。如需詳細資訊，請參閱[停用 SAC 和開機選單](troubleshoot-using-serial-console.md#disable-sac-bootmenu)。

使用下列其中一種方法來啟用執行個體上的 SAC 和開機功能表。

------
#### [ PowerShell ]

**在 Windows 執行個體上啟用 SAC 和開機功能表**

1. [連線](connecting_to_windows_instance.md)到您的執行個體，並從提高權限的 PowerShell 命令列執行下列步驟。

1. 啟用 SAC。

   ```
   bcdedit /ems '{current}' on
   bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
   ```

1. 啟用開機功能表。

   ```
   bcdedit /set '{bootmgr}' displaybootmenu yes
   bcdedit /set '{bootmgr}' timeout 15
   bcdedit /set '{bootmgr}' bootems yes
   ```

1. 透過重新啟動執行個體來套用更新的組態。

   ```
   shutdown -r -t 0
   ```

------
#### [ Command prompt ]

**在 Windows 執行個體上啟用 SAC 和開機功能表**

1. [連接](connecting_to_windows_instance.md)到您的執行個體，並從命令提示字元執行下列步驟。

1. 啟用 SAC。

   ```
   bcdedit /ems {current} on
   bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
   ```

1. 啟用開機功能表。

   ```
   bcdedit /set {bootmgr} displaybootmenu yes
   bcdedit /set {bootmgr} timeout 15
   bcdedit /set {bootmgr} bootems yes
   ```

1. 透過重新啟動執行個體來套用更新的組態。

   ```
   shutdown -r -t 0
   ```

------

# 設定對 EC2 序列主控台的存取
<a name="configure-access-to-serial-console"></a>

若要設定對序列主控台的存取權，您必須在帳戶層級授與序列主控台存取權，然後設定 IAM 政策以授予使用者存取權。針對 Linux 執行個體，您必須在每個執行個體上設定以密碼為基礎的使用者，以便使用者可以使用序列主控台進行疑難排解。

EC2 序列主控台會使用虛擬序列連接埠連線與執行個體互動。此連線與執行個體 VPC 無關，因此即使發生開機失敗或網路組態問題，您也可使用執行個體作業系統並執行疑難排解工具。由於此連線位於 VPC 網路外部，EC2 序列主控台不會使用執行個體安全群組或子網路網路 ACL 來授權執行個體的流量。

**開始之前**  
確認符合[先決條件](ec2-serial-console-prerequisites.md)。

**Topics**
+ [EC2 序列主控台的存取層級](#serial-console-access-levels)
+ [管理 EC2 序列主控台的帳戶存取](#serial-console-account-access)
+ [設定 EC2 序列主控台存取的 IAM 政策](#serial-console-iam)
+ [在 Linux 執行個體上設定作業系統使用者密碼](#set-user-password)

## EC2 序列主控台的存取層級
<a name="serial-console-access-levels"></a>

依預設，帳戶層級無法存取序列主控台。您需要在帳戶層級明確授予對序列主控台的存取權。如需詳細資訊，請參閱 [管理 EC2 序列主控台的帳戶存取](#serial-console-account-access)。

您可以使用服務控制政策 (SCP) 來允許對組織內序列主控台的存取。然後，您可以使用 IAM 政策控制存取，在使用者層級進行精細的存取控制。透過組合使用 SCP 和 IAM 政策，您擁有對序列主控台不同層級的存取控制。

**組織層級**  
您可以使用服務控制政策 (SCP) 來允許組織內成員帳戶存取序列主控台。如需 SCP 的詳細資訊，請參閱 *AWS Organizations 使用者指南*中的[服務控制政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。

**執行個體層級**  
您可以使用 IAM PrincipalTag 和 ResourceTag 結構，以及依其 ID 指定執行個體來設定序列主控台存取政策。如需詳細資訊，請參閱[設定 EC2 序列主控台存取的 IAM 政策](#serial-console-iam)。

**使用者層級**  
您可以設定 IAM 政策，以允許或拒絕指定的使用者將 SSH 公開金鑰推送至特定執行個體的序列主控台服務的權限，從而在使用者層級設定存取。如需詳細資訊，請參閱[設定 EC2 序列主控台存取的 IAM 政策](#serial-console-iam)。

**作業系統層級** (僅限 Linux 執行個體)  
您可以在客體作業系統層級設定使用者密碼。在某些使用案例下，這可讓您存取序列主控台。不過，若要監控日誌，您不需要以密碼為基礎的使用者。如需詳細資訊，請參閱 [在 Linux 執行個體上設定作業系統使用者密碼](#set-user-password)。

## 管理 EC2 序列主控台的帳戶存取
<a name="serial-console-account-access"></a>

依預設，帳戶層級無法存取序列主控台。您需要在帳戶層級明確授予對序列主控台的存取權。

此設定是在帳戶層級配置，可直接在帳戶中設定，或使用宣告式政策設定。它必須在您要授予序列主控台存取權的每個 AWS 區域 中設定。您可使用宣告式政策同時在多個區域及多個帳戶套用設定。使用宣告式政策時，您無法直接在帳戶中修改設定。本主題說明如何直接在帳戶內配置設定。如需使用宣告式政策的相關資訊，請參閱「AWS Organizations 使用者指南」**中的[宣告式政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)。

**Contents**
+ [授予使用者管理帳戶存取的許可](#sc-account-access-permissions)
+ [檢視序列主控台的帳戶存取狀態](#sc-view-account-access)
+ [授與序列主控台的帳戶存取權](#sc-grant-account-access)
+ [拒絕帳戶存取序列主控台](#sc-deny-account-access)

### 授予使用者管理帳戶存取的許可
<a name="sc-account-access-permissions"></a>

若要允許使用者管理對 EC2 序列主控台的帳戶存取權，您必須授予他們所需的 IAM 許可。

下列政策會授與檢視帳戶狀態，以及允許和阻止帳戶存取 EC2 序列主控台的權限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:GetSerialConsoleAccessStatus",
                "ec2:EnableSerialConsoleAccess",
                "ec2:DisableSerialConsoleAccess"
            ],
            "Resource": "*"
        }
    ]
}
```

------

如需詳細資訊，請參閱「IAM 使用者指南」**中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

### 檢視序列主控台的帳戶存取狀態
<a name="sc-view-account-access"></a>

------
#### [ Console ]

**檢視序列主控台的帳戶存取**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Dashboard (儀表板)**。

1. 在**帳戶屬性**卡片**的設定**下，選擇 **EC2 序列主控台**。

1. 在 **EC2 序列主控台**索引標籤上，**EC2 序列主控台存取**的值為**允許**或**禁止**。

------
#### [ AWS CLI ]

**檢視序列主控台的帳戶存取**  
使用 [get-serial-console-access-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-serial-console-access-status.html) 命令。

```
aws ec2 get-serial-console-access-status
```

以下為範例輸出。若值為 `true`，表示允許帳戶存取序列主控台。

```
{
    "SerialConsoleAccessEnabled": true,
    "ManagedBy": "account"
}
```

`ManagedBy` 欄位指示配置設定的實體。可能的值為 `account` (直接設定) 或 `declarative-policy`。如需詳細資訊，請參閱「AWS Organizations 使用者指南」**中的[宣告式政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)。

------
#### [ PowerShell ]

**檢視序列主控台的帳戶存取**  
使用 [Get-EC2SerialConsoleAccessStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SerialConsoleAccessStatus.html) cmdlet。

```
Get-EC2SerialConsoleAccessStatus -Select *
```

以下為範例輸出。若值為 `True`，表示允許帳戶存取序列主控台。

```
ManagedBy SerialConsoleAccessEnabled
--------- --------------------------
account   True
```

`ManagedBy` 欄位指示配置設定的實體。可能的值為 `account` (直接設定) 或 `declarative-policy`。如需詳細資訊，請參閱「AWS Organizations 使用者指南」**中的[宣告式政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)。

------

### 授與序列主控台的帳戶存取權
<a name="sc-grant-account-access"></a>

------
#### [ Console ]

**授與帳戶存取序列主控台**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Dashboard (儀表板)**。

1. 在**帳戶屬性**卡片**的設定**下，選擇 **EC2 序列主控台**。

1. 選擇**管理**。

1. 若要允許存取帳戶中所有執行個體的 EC2 序列主控台，請選取**運許**核取方塊。

1. 選擇**更新**。

------
#### [ AWS CLI ]

**授與帳戶存取序列主控台**  
使用 [enable-serial-console-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-serial-console-access.html) 命令。

```
aws ec2 enable-serial-console-access
```

以下為範例輸出。

```
{
    "SerialConsoleAccessEnabled": true
}
```

------
#### [ PowerShell ]

**授與帳戶存取序列主控台**  
使用 [Enable-EC2SerialConsoleAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2SerialConsoleAccess.html) cmdlet。

```
Enable-EC2SerialConsoleAccess
```

以下為範例輸出。

```
True
```

------

### 拒絕帳戶存取序列主控台
<a name="sc-deny-account-access"></a>

------
#### [ Console ]

**拒絕帳戶存取序列主控台**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Dashboard (儀表板)**。

1. 在**帳戶屬性**卡片**的設定**下，選擇 **EC2 序列主控台**。

1. 選擇**管理**。

1. 若要阻止存取帳戶中所有執行個體的 EC2 序列主控台，請清除**允許**核取方塊。

1. 選擇**更新**。

------
#### [ AWS CLI ]

**拒絕帳戶存取序列主控台**  
使用 [disable-serial-console-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-serial-console-access.html) 命令。

```
aws ec2 disable-serial-console-access
```

以下為範例輸出。

```
{
    "SerialConsoleAccessEnabled": false
}
```

------
#### [ PowerShell ]

**拒絕帳戶存取序列主控台**  
使用 [Disable-EC2SerialConsoleAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2SerialConsoleAccess.html) cmdlet。

```
Disable-EC2SerialConsoleAccess
```

以下為範例輸出。

```
False
```

------

## 設定 EC2 序列主控台存取的 IAM 政策
<a name="serial-console-iam"></a>

依預設，使用者無法存取序列主控台。您的組織必須設定 IAM 政策，以授予使用者所需的存取權。如需詳細資訊，請參閱「IAM 使用者指南」**中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

若要存取序列主控台，請建立包含 `ec2-instance-connect:SendSerialConsoleSSHPublicKey` 動作的 JSON 政策文件。此動作會授予使用者將公有金鑰推送至序列主控台服務的許可，此服務會啟動序列主控台工作階段。建議限制對特定 EC2 執行個體的存取。否則，擁有此許可的所有使用者都可以連線到所有 EC2 執行個體的序列主控台。

**Topics**
+ [明確允許存取序列主控台](#iam-explicitly-allow-access)
+ [明確拒絕存取序列主控台](#serial-console-IAM-policy)
+ [使用資源標籤來控制對序列主控台的存取](#iam-resource-tags)

### 明確允許存取序列主控台
<a name="iam-explicitly-allow-access"></a>

依預設，沒有人可以存取序列主控台。若要授與對序列主控台的存取權，您必須設定政策以明確允許存取。建議您設定限制存取特定執行個體的政策。

下列政策允許存取特定執行個體的序列主控台，並依其執行個體 ID 進行識別。

請注意，`DescribeInstances`、`DescribeInstanceTypes`、和 `GetSerialConsoleAccessStatus` 動作不支援資源層級許可，因此為這些動作指定所有資源，以 `*` (星號) 表示。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeInstances",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:GetSerialConsoleAccessStatus"
            ],
             "Resource": "*"
        },
        {
            "Sid": "AllowinstanceBasedSerialConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "ec2-instance-connect:SendSerialConsoleSSHPublicKey"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/i-0598c7d356eba48d7"
        }
    ]
}
```

------

### 明確拒絕存取序列主控台
<a name="serial-console-IAM-policy"></a>

下列 IAM 政策允許存取所有執行個體的序列主控台 (以 `*` (星號) 表示)，並明確拒絕存取特定執行個體的序列主控台 (依其 ID 進行識別)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSerialConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "ec2-instance-connect:SendSerialConsoleSSHPublicKey",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:GetSerialConsoleAccessStatus"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenySerialConsoleAccess",
            "Effect": "Deny",
            "Action": [
                "ec2-instance-connect:SendSerialConsoleSSHPublicKey"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/i-0598c7d356eba48d7"
        }
    ]
}
```

------

### 使用資源標籤來控制對序列主控台的存取
<a name="iam-resource-tags"></a>

您可以使用資源標籤來控制對執行個體序列主控台的存取。

屬性型存取控制是一種授權策略，可根據可連接到使用者 AWS 和資源的標籤來定義許可。例如，下列政策允許使用者啟動執行個體的序列主控台連線，只有當該執行個體的資源標籤和主參與者的標籤具有相同的標籤鍵 `SerialConsole` 值時，才能啟動執行個體的序列主控台連線。

如需使用標籤控制對 AWS 資源的存取的詳細資訊，請參閱《*IAM 使用者指南*》中的[控制對 AWS 資源的存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)。

請注意，`DescribeInstances`、`DescribeInstanceTypes`、和 `GetSerialConsoleAccessStatus` 動作不支援資源層級許可，因此為這些動作指定所有資源，以 `*` (星號) 表示。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeInstances",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:GetSerialConsoleAccessStatus"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowTagBasedSerialConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "ec2-instance-connect:SendSerialConsoleSSHPublicKey"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/SerialConsole": "${aws:PrincipalTag/SerialConsole}"
                }
            }
        }
    ]
}
```

------

## 在 Linux 執行個體上設定作業系統使用者密碼
<a name="set-user-password"></a>

您無需密碼即可連線到序列主控台。不過，若要*使用*序列主控台進行 Linux 執行個體疑難排解，執行個體必須具有以密碼為基礎的 OS 使用者。

您可以為任何 OS 使用者 (包括根使用者) 設定密碼。請注意，根使用者可以修改所有檔案，而每個 OS 使用者的許可有限制。

您必須為每個要使用序列主控台的執行個體設定使用者密碼。這是每個執行個體都有的一次性要求。

**注意**  
根據預設， 提供的 AMIs AWS 不會設定密碼型使用者。如果您使用已設定根使用者密碼的 AMI 啟動執行個體，則可以略過這些指示。

**在 Linux 執行個體上設定作業系統使用者密碼**

1. [連線到您的執行個體](connect-to-linux-instance.md)。您可以使用任何方法連線到執行個體，EC2 序列主控台連線方法除外。

1. 若要設定使用者的密碼，請使用 **passwd** 命令。在下列範例中，使用者是 `root`。

   ```
   [ec2-user ~]$ sudo passwd root
   ```

   下列為範例輸出。

   ```
   Changing password for user root.
   New password:
   ```

1. 出現 `New password` 提示時，輸入新密碼。

1. 出現提示時，重新輸入密碼。

# 連線至 EC2 序列主控台
<a name="connect-to-serial-console"></a>

您可以使用 Amazon EC2 主控台或透過 SSH 連線到 EC2 執行個體的序列控制台。連線到序列主控台後，您可以使用它來疑難排解開機、網路設定和其他問題。如需疑難排解的詳細資訊，請參閱 [使用 EC2 序列主控台進行 Amazon EC2 執行個體疑難排解](troubleshoot-using-serial-console.md)。

**考量事項**
+ 每個執行個體僅支援 1 個使用中的序列主控台連線。
+ 除非[您終止連線](disconnect-serial-console-session.md)，否則序列主控台連線通常會持續 1 個小時。但是，在系統維護期間，Amazon EC2 將終止序列主控台工作階段的連線。

  連線的持續時間並不是由 IAM 憑證的持續時間決定。即使您的 IAM 憑證過期，連線仍會繼續保留，直到達到序列主控台連線的最長持續時間為止。使用 EC2 序列主控台體驗時，若您的 IAM 憑證過期，請關閉瀏覽器頁面來終止連線。
+ 從序列主控台中斷連線後，需要 30 秒才能縮減工作階段，以便允許新的工作階段。
+ 支援的序列主控台連接埠：`ttyS0` (Linux 執行個體) 和 `COM1` (Windows 執行個體)
+ 當您連線到序列主控台時，可能會發現執行個體的輸送量略有下降。

**Topics**
+ [使用以瀏覽器為基礎的用戶端連接](#sc-connect-browser-based-client)
+ [使用您自己的金鑰和 SSH 用戶端來進行連接](#sc-connect-SSH)
+ [EC2 序列主控台端點和指紋](#sc-endpoints-and-fingerprints)

## 使用以瀏覽器為基礎的用戶端連接
<a name="sc-connect-browser-based-client"></a>

您可以使用以瀏覽器為基礎的用戶端連線到 EC2 執行個體的序列主控台。您可以在 Amazon EC2 主控台中選取執行個體並選擇連線到序列主控台來執行這項操作。以瀏覽器為基礎的用戶端會處理權限，並提供成功的連線。

EC2 序列控制台適用於大多數瀏覽器，並支援鍵盤和滑鼠輸入。

連線之前，請確認您已完成[事前準備](ec2-serial-console-prerequisites.md)。

**使用以瀏覽器為基礎的用戶端 (Amazon EC2 主控台) 連線到執行個體的序列埠**

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

1. 在導覽窗格中，選擇**執行個體**。

1. 請選取執行個體並選擇 **Actions** (動作)、**Monitor and troubleshoot** (監控和疑難排解)、**EC2 Serial Console** (EC2 序列主控台)、**Connect** (連線)。

   或者，請選取執行個體並選擇 **Connect** (連線)、**EC2 Serial Console** (EC2 序列主控台)、 **Connect** (連線)。

   瀏覽器內的終端機視窗隨即開啟。

1. 按 **Enter**。如果傳回登入提示，表示您已連線到序列主控台。

   如果螢幕保持黑色，您可以使用下列資訊來協助解決連線到序列主控台的問題：
   + **檢查您是否已設定序列主控台的存取權。**如需詳細資訊，請參閱[設定對 EC2 序列主控台的存取](configure-access-to-serial-console.md)。
   + (僅限 Linux 執行個體) **使用 SysRq 連線到序列主控台。**SysRq 不需要您使用瀏覽器型用戶端連線。如需詳細資訊，請參閱[(Linux 執行個體) 使用 SysRq 對執行個體進行疑難排解SysRq (Linux)](troubleshoot-using-serial-console.md#SysRq)。
   + (僅限 Linux 執行個體) **重新啟動 getty。**如果您對執行個體有 SSH 存取權限，然後使用 SSH 連接到您的執行個體，並使用以下命令重新啟動 Getty。

     ```
     [ec2-user ~]$ sudo systemctl restart serial-getty@ttyS0
     ```
   + **將執行個體重新開機。**您可以使用 SysRq (Linux 執行個體)、EC2 主控台或 AWS CLI來為執行個體重新開機。如需詳細資訊，請參閱 [(Linux 執行個體) 使用 SysRq 對執行個體進行疑難排解SysRq (Linux)](troubleshoot-using-serial-console.md#SysRq) (Linux 執行個體) 或 [重新啟動您的 Amazon EC2 執行個體](ec2-instance-reboot.md)。

1. (僅限Linux 執行個體) 出現 `login` 提示時，輸入您[先前設定](configure-access-to-serial-console.md#set-user-password)的密碼型使用者的使用者名稱，然後按 **Enter**。

1. (僅限Linux 執行個體) 出現 `Password` 提示時，輸入密碼，然後按 **Enter**。

## 使用您自己的金鑰和 SSH 用戶端來進行連接
<a name="sc-connect-SSH"></a>

當您使用序列主控台 API 時，可以使用自己的 SSH 金鑰和從您選擇的 SSH 用戶端連接執行個體。這可讓您從發佈公有的金鑰至執行個體的序列主控台功能受益。

將 SSH 金鑰推送至執行個體後，SSH 連線將不受您為授予使用者 EC2 序列主控台存取權而設定的 IAM 政策約束。

**開始之前**  
確認符合[先決條件](ec2-serial-console-prerequisites.md)。

**使用 SSH 連線到執行個體的序列主控台**

1. **將 SSH 公開金鑰推送到執行個體，以啟動序列控制台工作階段**

   使用 [send-serial-console-ssh-public-key](https://docs.aws.amazon.com/cli/latest/reference/ec2-instance-connect/send-serial-console-ssh-public-key.html) 命令將 SSH 公開金鑰推送至執行個體。這會啟動序列主控台工作階段。

   如果此執行個體已經啟動序列主控台工作階段，則命令會失敗，因為您一次只能開啟一個工作階段。從序列主控台中斷連線後，需要 30 秒才能縮減工作階段，以便允許新的工作階段。

   ```
   aws ec2-instance-connect send-serial-console-ssh-public-key \
       --instance-id i-001234a4bf70dec41EXAMPLE \
       --serial-port 0 \
       --ssh-public-key file://my_key.pub \
       --region us-east-1
   ```

1. 

**使用私有金鑰連線到序列主控台**

   在從序列主控台服務中移除公開金鑰之前，請使用 **ssh** 命令連線到序列主控台。在將其移除之前，您有 60 秒時間。

   使用對應於公開金鑰的私有金鑰。

   使用者名稱格式為 `instance-id.port0`，其中包含執行個體 ID 和連接埠 0。在下列範例中，使用者名稱為 `i-001234a4bf70dec41EXAMPLE.port0`。

   每個區域的序列主控台服務端點各不相同。請參閱每個區域端點的 [EC2 序列主控台端點和指紋](#sc-endpoints-and-fingerprints) 資料表。在下列範例中，序列主控台服務位於 *us-east-1* 區域。

   ```
   ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws
   ```

   下列範例使用 `timeout 3600` 將 SSH 工作階段設定為 1 小時後終止。工作階段終止之後，工作階段期間啟動的程序可能會在執行個體上繼續執行。

   ```
   timeout 3600 ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws
   ```

1. 

**(選擇性) 驗證指紋**

   當您第一次連線到序列主控台時，系統會提示您確認指紋。您可以將序列主控台指紋與顯示進行驗證的指紋進行比較。如果這些指紋不符合，可能有人嘗試發動中間人攻擊。如果它們匹配，您可以放心地連接到序列主控台。

   以下指紋適用於 us-east-1 區域的序列控制台服務。如需每個區域的指紋，請參閱 [EC2 序列主控台端點和指紋](#sc-endpoints-and-fingerprints)。

   ```
   SHA256:dXwn5ma/xadVMeBZGEru5l2gx+yI5LDiJaLUcz0FMmw
   ```

   指紋只會在您第一次連線到序列主控台時出現。

1. 按 **Enter**。如果傳回提示，表示您已連線到序列主控台。

   如果螢幕保持黑色，您可以使用下列資訊來協助解決連線到序列主控台的問題：
   + **檢查您是否已設定序列主控台的存取權。**如需詳細資訊，請參閱[設定對 EC2 序列主控台的存取](configure-access-to-serial-console.md)。
   + (僅限 Linux 執行個體) **使用 SysRq 連線到序列主控台。**SysRq 不需要您使用 SSH 進行連線。如需詳細資訊，請參閱[(Linux 執行個體) 使用 SysRq 對執行個體進行疑難排解SysRq (Linux)](troubleshoot-using-serial-console.md#SysRq)。
   + (僅限 Linux 執行個體) **重新啟動 getty。**如果您對執行個體有 SSH 存取權限，然後使用 SSH 連接到您的執行個體，並使用以下命令重新啟動 Getty。

     ```
     [ec2-user ~]$ sudo systemctl restart serial-getty@ttyS0
     ```
   + **將執行個體重新開機。**您可以使用 SysRq (僅限 Linux 執行個體)、EC2 主控台或 AWS CLI來為執行個體重新開機。如需詳細資訊，請參閱 [(Linux 執行個體) 使用 SysRq 對執行個體進行疑難排解SysRq (Linux)](troubleshoot-using-serial-console.md#SysRq) (僅限 Linux 執行個體) 或 [重新啟動您的 Amazon EC2 執行個體](ec2-instance-reboot.md)。

1. (僅限Linux 執行個體) 出現 `login` 提示時，輸入您[先前設定](configure-access-to-serial-console.md#set-user-password)的密碼型使用者的使用者名稱，然後按 **Enter**。

1. (僅限Linux 執行個體) 出現 `Password` 提示時，輸入密碼，然後按 **Enter**。

## EC2 序列主控台端點和指紋
<a name="sc-endpoints-and-fingerprints"></a>

下列項目是 EC2 序列主控台的服務端點和指紋。若要以程式設計方式連線至執行個體的序列主控台，您可使用 EC2 序列主控台端點。每個 AWS 區域的 EC2 序列主控台端點和指紋都是獨一無二的。


| 區域名稱 | 區域 | Endpoint | 指紋 | 
| --- | --- | --- | --- | 
| 美國東部 (俄亥俄) | us-east-2 | serial-console.ec2-instance-connect.us-east-2.aws | SHA256:EhwPkTzRtTY7TRSzz26XbB0/HvV9jRM7mCZN0xw/d/0 | 
| 美國東部 (維吉尼亞北部) | us-east-1 | serial-console.ec2-instance-connect.us-east-1.aws | SHA256:dXwn5ma/xadVMeBZGEru5l2gx\$1yI5LDiJaLUcz0FMmw | 
| 美國西部 (加利佛尼亞北部) | us-west-1 | serial-console.ec2-instance-connect.us-west-1.aws | SHA256:OHldlcMET8u7QLSX3jmRTRAPFHVtqbyoLZBMUCqiH3Y | 
| 美國西部 (奧勒岡) | us-west-2 | serial-console.ec2-instance-connect.us-west-2.aws | SHA256:EMCIe23TqKaBI6yGHainqZcMwqNkDhhAVHa1O2JxVUc | 
| Africa (Cape Town) | af-south-1 | ec2-serial-console.af-south-1.api.aws | SHA256:RMWWZ2fVePeJUqzjO5jL2KIgXsczoHlz21Ed00biiWI | 
| 亞太地區 (香港) | ap-east-1 | ec2-serial-console.ap-east-1.api.aws | SHA256:T0Q1lpiXxChoZHplnAkjbP7tkm2xXViC9bJFsjYnifk | 
| 亞太區域 (台北) | ap-east-2 | ec2-serial-console.ap-east-2.api.aws | SHA256：z1rsF5DE8aQqsHwBr/D40tR2GnyMqnScCUa1z1eFwDQ | 
| 亞太地區 (海德拉巴) | ap-south-2 | ec2-serial-console.ap-south-2.api.aws | SHA256:WJgPBSwV4/shN\$1OPITValoewAuYj15DVW845JEhDKRs | 
| 亞太地區 (雅加達) | ap-southeast-3 | ec2-serial-console.ap-southeast-3.api.aws | SHA256:5ZwgrCh\$1lfns32XITqL/4O0zIfbx4bZgsYFqy3o8mIk | 
| 亞太地區 (馬來西亞) | ap-southeast-5 | ec2-serial-console.ap-southeast-5.api.aws | SHA256:cQXTHQMRcqRdIjmAGoAMBSExeoRobYyRwT67yTjnEiA | 
| 亞太區域 (紐西蘭) | ap-southeast-6 | ec2-serial-console.ap-southeast-6.api.aws | SHA256：wNltdH0gVfM5uHJKjrw\$1ElFuKoJgalcSKqjCS\$1lLkv4 | 
| 亞太地區 (墨爾本) | ap-southeast-4 | ec2-serial-console.ap-southeast-4.api.aws | SHA256:Avaq27hFgLvjn5gTSShZ0oV7h90p0GG46wfOeT6ZJvM | 
| 亞太區域 (孟買) | ap-south-1 | serial-console.ec2-instance-connect.ap-south-1.aws | SHA256:oBLXcYmklqHHEbliARxEgH8IsO51rezTPiSM35BsU40 | 
| 亞太地區 (大阪) | ap-northeast-3 | ec2-serial-console.ap-northeast-3.api.aws | SHA256:Am0/jiBKBnBuFnHr9aXsgEV3G8Tu/vVHFXE/3UcyjsQ | 
| 亞太區域 (首爾) | ap-northeast-2 | serial-console.ec2-instance-connect.ap-northeast-2.aws | SHA256:FoqWXNX\$1DZ\$1\$1GuNTztg9PK49WYMqBX\$1FrcZM2dSrqrI | 
| 亞太區域 (新加坡) | ap-southeast-1 | serial-console.ec2-instance-connect.ap-southeast-1.aws | SHA256:PLFNn7WnCQDHx3qmwLu1Gy/O8TUX7LQgZuaC6L45CoY | 
| 亞太地區 (悉尼) | ap-southeast-2 | serial-console.ec2-instance-connect.ap-southeast-2.aws | SHA256:yFvMwUK9lEUQjQTRoXXzuN\$1cW9/VSe9W984Cf5Tgzo4 | 
| 亞太區域 (泰國) | ap-southeast-7 | ec2-serial-console.ap-southeast-7.api.aws | SHA256:KCAZiRYrR1Q2lqsg7vTwixWmvc2wmjVT31XRgSdEfDY | 
| 亞太區域 (東京) | ap-northeast-1 | serial-console.ec2-instance-connect.ap-northeast-1.aws | SHA256:RQfsDCZTOfQawewTRDV1t9Em/HMrFQe\$1CRlIOT5um4k | 
| 加拿大 (中部) | ca-central-1 | serial-console.ec2-instance-connect.ca-central-1.aws | SHA256:P2O2jOZwmpMwkpO6YW738FIOTHdUTyEv2gczYMMO7s4 | 
| 加拿大西部 (卡加利) | ca-west-1 | ec2-serial-console.ca-west-1.api.aws | SHA256:s3rc8lI2xhbhr3iedjJNxGAFLPGOLjx7IxxXrGckk6Q | 
| 中國 (北京) | cn-north-1 | ec2-serial-console---cn-north-1---api.amazonwebservices.com.rproxy.govskope.ca.cn | SHA256:2gHVFy4H7uU3\$1WaFUxD28v/ggMeqjvSlgngpgLgGT\$1Y | 
| 中國 (寧夏) | cn-northwest-1 | ec2-serial-console---cn-northwest-1---api.amazonwebservices.com.rproxy.govskope.ca.cn | SHA256:TdgrNZkiQOdVfYEBUhO4SzUA09VWI5rYOZGTogpwmiM | 
| 歐洲 (法蘭克福) | eu-central-1 | serial-console.ec2-instance-connect.eu-central-1.aws | SHA256:aCMFS/yIcOdOlkXvOl8AmZ1Toe\$1bBnrJJ3Fy0k0De2c | 
| 歐洲 (愛爾蘭) | eu-west-1 | serial-console.ec2-instance-connect.eu-west-1.aws | SHA256:h2AaGAWO4Hathhtm6ezs3Bj7udgUxi2qTrHjZAwCW6E | 
| 歐洲 (倫敦) | eu-west-2 | serial-console.ec2-instance-connect.eu-west-2.aws | SHA256:a69rd5CE/AEG4Amm53I6lkD1ZPvS/BCV3tTPW2RnJg8 | 
| 歐洲 (米蘭) | eu-south-1 | ec2-serial-console.eu-south-1.api.aws | SHA256:lC0kOVJnpgFyBVrxn0A7n99ecLbXSX95cuuS7X7QK30 | 
| Europe (Paris) | eu-west-3 | serial-console.ec2-instance-connect.eu-west-3.aws | SHA256:q8ldnAf9pymeNe8BnFVngY3RPAr/kxswJUzfrlxeEWs | 
| 歐洲 (西班牙) | eu-south-2 | ec2-serial-console.eu-south-2.api.aws | SHA256:GoCW2DFRlu669QNxqFxEcsR6fZUz/4F4n7T45ZcwoEc | 
| Europe (Stockholm) | eu-north-1 | serial-console.ec2-instance-connect.eu-north-1.aws | SHA256:tkGFFUVUDvocDiGSS3Cu8Gdl6w2uI32EPNpKFKLwX84 | 
| 歐洲 (蘇黎世) | eu-central-2 | ec2-serial-console.eu-central-2.api.aws | SHA256:8Ppx2mBMf6WdCw0NUlzKfwM4/IfRz4OaXFutQXWp6mk | 
| 以色列 (特拉維夫) | il-central-1 | ec2-serial-console.il-central-1.api.aws | SHA256:JR6q8v6kNNPi8\$1QSFQ4dj5dimNmZPTgwgsM1SNvtYyU | 
| 墨西哥 (中部) | mx-central-1 | ec2-serial-console.mx-central-1.api.aws | SHA256:BCuVl13iQNk\$1CcVnt18Ef4p2ZHUrBBAOxlFetB32GS0 | 
| Middle East (Bahrain) | me-south-1 | ec2-serial-console.me-south-1.api.aws | SHA256:nPjLLKHu2QnLdUq2kVArsoK5xvPJOMRJKCBzCDqC3k8 | 
| 中東 (阿拉伯聯合大公國) | me-central-1 | ec2-serial-console.me-central-1.api.aws | SHA256:zpb5duKiBZ\$1l0dFwPeyykB4MPBYhI/XzXNeFSDKBvLE | 
| 南美洲 (聖保羅) | sa-east-1 | serial-console.ec2-instance-connect.sa-east-1.aws | SHA256:rd2\$1/32Ognjew1yVIemENaQzC\$1Botbih62OqAPDq1dI | 
| AWS GovCloud （美國東部） | us-gov-east-1 | serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com | SHA256:tIwe19GWsoyLClrtvu38YEEh\$1DHIkqnDcZnmtebvF28 | 
| AWS GovCloud （美國西部） | us-gov-west-1 | serial-console.ec2-instance-connect.us-gov-west-1.amazonaws.com | SHA256:kfOFRWLaOZfB\$1utbd3bRf8OlPf8nGO2YZLqXZiIw5DQ | 

# 終止與 EC2 序列主控台的連線
<a name="disconnect-serial-console-session"></a>

如果您不再需要連線至執行個體的 EC2 序列主控台，就可以終止其連線。當您終止與序列主控台的連線時，執行個體上執行的任何 shell 工作階段都會繼續執行。如果想要結束 shell 工作階段，您必須先將其結束，然後才能終止與序列主控台的連線。

**考量事項**
+ 除非您終止連線，否則序列主控台連線通常會持續 1 個小時。但是，在系統維護期間，Amazon EC2 將終止序列主控台工作階段的連線。
+ 從序列主控台中斷連線後，需要 30 秒才能縮減工作階段，以便允許新的工作階段。

終止與序列主控台連線的方式取決於用戶端。

**瀏覽器型用戶端**  
若要終止與序列主控台的連線，請關閉序列主控台的瀏覽器內終端機視窗。

**標準開啟 SSH 用戶端**  
若要終止與序列主控台的連線，請使用下列命令關閉 SSH 連線。必須在新行之後立即執行此命令。

```
~.
```

根據您使用的 SSH 用戶端，您用來關閉 SSH 連線的命令可能會有所不同。

# 使用 EC2 序列主控台進行 Amazon EC2 執行個體疑難排解
<a name="troubleshoot-using-serial-console"></a>

透過使用 EC2 序列主控台，您可以連接到執行個體的序列埠來疑難排解開機、網路設定和其他問題。

針對執行個體的作業系統和您在執行個體上設定的工具，使用相關指示。

**Topics**
+ [GRUB (Linux)](#grub)
+ [SysRq (Linux)](#SysRq)
+ [SAC (Windows)](#troubleshooting-sac)

**先決條件**  
在開始之前，請確定您已完成[先決條件](ec2-serial-console-prerequisites.md)，包括設定您所選的疑難排解工具。

## (Linux 執行個體) 使用 GRUB 對執行個體進行疑難排解
<a name="grub"></a>

GNU GRUB (GNU Grand 統一開機載入程式的簡稱，通常稱為 GRUB) 是大多數 Linux 作業系統的預設開機載入程式。從 GRUB 功能表中，您可以選擇要開機的核心，或修改功能表項目以變更核心的開機方式。這在疑難排解失敗的執行個體時非常有用。

GRUB 功能表會在開機過程中顯示。該功能表無法透過一般 SSH 存取，但您可以使用 EC2 序列主控台存取。

您可以開機至單一使用者模式或緊急模式。單一使用者模式會以較低的執行層級啟動核心。例如，它可能掛載檔案系統，但不會啟動網路，讓您有機會執行修復執行個體所需的維護。緊急模式與單一使用者模式類似，不同之處在於核心以最低的執行層級執行。

**開機至單一使用者模式**

1. [連線](connect-to-serial-console.md)到執行個體的序列主控台。

1. 使用下列命令重新啟動執行個體。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 在重新開機期間，當 GRUB 功能表出現時，按任意鍵停止啟動過程。

1. 在 GRUB 功能表中，使用方向鍵選取要開機的核心，然後按鍵盤上的 `e`。

1. 使用方向鍵將游標定位在包含核心的行上。該行以 `linux` 或 `linux16` 開頭，取決於用於啟動執行個體的 AMI。對於 Ubuntu，兩行以 `linux` 開頭，必須在下一個步驟中修改這兩行。

1. 在該行的末尾，添加單詞 `single`。

   以下是 Amazon Linux 2 的範例。

   ```
   linux /boot/vmlinuz-4.14.193-149.317.amzn2.aarch64 root=UUID=d33f9c9a-\
   dadd-4499-938d-ebbf42c3e499 ro  console=tty0 console=ttyS0,115200n8 net.ifname\
   s=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.she\
   ll=0 single
   ```

1. 按 ** Ctrl\$1X ** 以開機進入單一使用者模式。

1. 出現 `login` 提示時，輸入您[先前設定](configure-access-to-serial-console.md#set-user-password)之密碼型使用者的使用者名稱，然後按 **Enter**。

1. 出現 `Password` 提示時，輸入密碼，然後按 ** Enter**。

 

**開機進入緊急模式**  
遵循與單一使用者模式相同的步驟，但在步驟 6 中新增字詞 `emergency`，而非 `single`。

## (Linux 執行個體) 使用 SysRq 對執行個體進行疑難排解
<a name="SysRq"></a>

系統要求 (SysRq) 金鑰，有時稱為「神奇 SysRq」，可以用來在 shell 之外直接向核心傳送命令，無論核心正在執行什麼操作，都會回應。例如，如果執行個體已停止回應，您可以使用 SysRq 金鑰告訴核心當機或重新開機。如需詳細資訊，請參閱 Wikipedia 中的[神奇 SysRq 金鑰](https://en.wikipedia.org/wiki/Magic_SysRq_key)。

您可以在以 EC2 序列主控台瀏覽器為基礎的用戶端或 SSH 用戶端中使用 SysRq 命令。每個用戶端傳送中斷請求的命令是不同的。

若要使用 SysRq，請根據您所使用的用戶端選擇下列其中一個程序。

------
#### [ Browser-based client ]

**在序列主控台瀏覽器型用戶端中使用 SysRq**

1. [連線](connect-to-serial-console.md)到執行個體的序列主控台。

1. 若要傳送中斷請求，請按 `CTRL+0` (零)。如果您的鍵盤支援，您也可以使用「暫停」或「Break」鍵來傳送中斷請求。

   ```
   [ec2-user ~]$ CTRL+0
   ```

1. 若要發出 SysRq 命令，請按鍵盤上對應至所需命令的按鍵。例如，若要顯示 SysRq 命令清單，請按 `h`。

   ```
   [ec2-user ~]$ h
   ```

   `h` 命令會輸出類似下列內容。

   ```
   [ 1169.389495] sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems
   (j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r
   ) sync(s) show-task-states(t) unmount(u) show-blocked-tasks(w) dump-ftrace-buffer(z)
   ```

------
#### [ SSH client ]

**在 SSH 用戶端中使用 SysRq**

1. [連線](connect-to-serial-console.md)到執行個體的序列主控台。

1. 若要傳送中斷請求，請按下 `~B` (波狀符號，後面接著大寫 `B`)。

   ```
   [ec2-user ~]$ ~B
   ```

1. 若要發出 SysRq 命令，請按鍵盤上對應至所需命令的按鍵。例如，若要顯示 SysRq 命令清單，請按 `h`。

   ```
   [ec2-user ~]$ h
   ```

   `h` 命令會輸出類似下列內容。

   ```
   [ 1169.389495] sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems
   (j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r
   ) sync(s) show-task-states(t) unmount(u) show-blocked-tasks(w) dump-ftrace-buffer(z)
   ```
**注意**  
根據您使用的 SSH 用戶端，您用於傳送中斷請求的命令可能會有所不同。

------

## (Windows 執行個體) 使用 SAC 為您的執行個體進行疑難排解
<a name="troubleshooting-sac"></a>

Windows 的特殊管理主控台 (SAC) 功能提供了一種疑難排解 Windows 執行個體的方法。透過連線到執行個體的序列主控台並使用 SAC，您可以中斷開機程序並以安全模式啟動 Windows。

**注意**  
如果您在執行個體上啟用 SAC，則依賴密碼擷取的 EC2 服務將無法從 Amazon EC2 主控台運作。Amazon EC2 上的 Windows 啟動代理程式 (EC2Config、EC2Launch v1 和 EC2Launch v2) 倚賴序列主控台執行各種任務。在執行個體上啟用 SAC 時，這些任務不會成功執行。如需 Amazon EC2 啟動代理程式的詳細資訊，請參閱 [設定您的 Amazon EC2 Windows 執行個體](ec2-windows-instances.md)。如果您啟用 SAC，可以稍後停用它。如需詳細資訊，請參閱[停用 SAC 和開機選單](#disable-sac-bootmenu)。

**Topics**
+ [使用 SAC](#use-sac)
+ [使用開機功能表](#use-boot-menu)
+ [停用 SAC 和開機選單](#disable-sac-bootmenu)

### 使用 SAC
<a name="use-sac"></a>

**使用 SAC**

1. [連接至序列主控台。](connect-to-serial-console.md)

   如果執行個體上已啟用 SAC，序列主控台會顯示 `SAC>` 提示。  
![\[序列主控台中顯示的 SAC 提示。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/win-boot-3.png)

1. 若要顯示 SAC 命令，請輸入「?」，然後按 **Enter**。

   預期的輸出結果  
![\[輸入問號以顯示 SAC 命令。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/win-boot-4.png)

1. 若要建立命令提示通道 (例如 `cmd0001` 或 `cmd0002`)，請輸入「cmd」，然後按 **Enter**。

1. 若要檢視命令提示通道，請按 **ESC**，然後按 **TAB**。

   預期的輸出結果  
![\[命令提示通道。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/win-boot-5.png)

1. 若要切換通道，請同時按 **ESC\$1TAB\$1通道號碼**。例如，若要切換至 `cmd0002` 頻道 (如果已建立)，請按 **ESC\$1TAB\$12**。

1. 輸入命令提示通道所需的憑證。  
![\[命令提示字元需要憑證。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/win-boot-6.png)

   命令提示字元與您在桌面上取得的完整功能命令 Shell 相同，但是除了它，不允許讀取已經輸出的字元。  
![\[功能齊全的命令 Shell。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/win-boot-7.png)

**也可以從命令提示字元使用 PowerShell。**

請注意，您可能需要將進度偏好設定設定為無訊息模式。

![\[命令提示字元中的 PowerShell。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/win-boot-8.png)


### 使用開機功能表
<a name="use-boot-menu"></a>

如果執行個體啟用了開機功能表，且透過 SSH 連線後重新啟動，您應該會看到開機功能表，如下所示。

![\[命令提示字元中的開機功能表。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/win-boot-1.png)


**開機功能表命令 **

ENTER  
啟動選取的作業系統項目。

TAB  
切換至「工具」功能表。

ESC  
取消並重新啟動執行個體。

ESC 後跟 8  
相當於按下 ** F8 **。顯示所選項目的進階選項。

ESC 鍵 \$1 向左箭頭  
回到初始開始功能表。  
單獨的 ESC 鍵不會帶您回到主功能表，因為 Windows 正在等待查看是否正在進行逸出序列。

![\[進階開機選項。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/win-boot-2.png)


### 停用 SAC 和開機選單
<a name="disable-sac-bootmenu"></a>

如果您啟用 SAC 和開機選單，可以稍後停用這些功能。

使用下列其中一種方法來停用執行個體上的 SAC 和開機功能表。

------
#### [ PowerShell ]

**在 Windows 執行個體上停用 SAC 和開機功能表**

1. [連線](connecting_to_windows_instance.md)到您的執行個體，並從提高權限的 PowerShell 命令列執行下列步驟。

1. 首先透過將值變更為 `no` 來停用開機選單。

   ```
   bcdedit /set '{bootmgr}' displaybootmenu no
   ```

1. 然後透過將值變更為 `off` 來停用 SAC。

   ```
   bcdedit /ems '{current}' off
   ```

1. 透過重新啟動執行個體來套用更新的組態。

   ```
   shutdown -r -t 0
   ```

------
#### [ Command prompt ]

**在 Windows 執行個體上停用 SAC 和開機功能表**

1. [連接](connecting_to_windows_instance.md)到您的執行個體，並從命令提示字元執行下列步驟。

1. 首先透過將值變更為 `no` 來停用開機選單。

   ```
   bcdedit /set {bootmgr} displaybootmenu no
   ```

1. 然後透過將值變更為 `off` 來停用 SAC。

   ```
   bcdedit /ems {current} off
   ```

1. 透過重新啟動執行個體來套用更新的組態。

   ```
   shutdown -r -t 0
   ```

------