

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

# 使用 SSH 連線至您的 Linux 執行個體
<a name="connect-to-linux-instance"></a>

有多種方法可使用 SSH 連線至 Linux 執行個體。其中的某些方法會因您連線的來源本機電腦作業系統而有所不同。其他方法以瀏覽器為基礎，例如 EC2 Instance Connect 或 AWS Systems Manager Session Manager，並且可以從任何電腦使用。您可以使用 SSH 連線至 Linux 執行個體並執行命令，或在本機電腦與執行個體之間使用 SSH 傳輸檔案。

使用 SSH 連線到您的 Linux 執行個體之前，請先完成下列先決條件：
+ 請確認您的執行個體已通過狀態檢查。執行個體可能需要幾分鐘的時間準備就緒，以接受連線要求。如需詳細資訊，請參閱[檢視狀態檢查](viewing_status.md)。
+ 請確保與執行個體關聯的安全群組允許來自您的 IP 地址的傳入 SSH 流量。如需詳細資訊，請參閱[從您電腦連線到執行個體的規則](security-group-rules-reference.md#sg-rules-local-access)。
+ [取得必要的執行個體詳細資訊](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
+ [找出私有金鑰並設定許可](connection-prereqs-general.md#connection-prereqs-private-key).
+ [(選用) 取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint).

然後，請選擇以下其中一個選項，以使用 SSH 連線至 Linux 執行個體。
+ [使用 SSH 用戶端連線](connect-linux-inst-ssh.md)
+ [使用 PuTTY 連線](connect-linux-inst-from-windows.md) 
+ [使用 SCP 傳輸檔案](linux-file-transfer-scp.md)

如果您無法連線至執行個體，且需要協助進行疑難排解，請參閱 [對連線至 Amazon EC2 Linux 執行個體的問題進行疑難排解](TroubleshootingInstancesConnecting.md)。

# 使用 SSH 用戶端連接至 Linux 執行個體
<a name="connect-linux-inst-ssh"></a>

您可以使用 Secure Shell (SSH) 從本機電腦連線至 Linux 執行個體。如需關於其他選項的詳細資訊，請參閱 [連線至 EC2 執行個體](connect.md)。

**注意**  
如果您在嘗試連線至執行個體時收到錯誤訊息，請確認執行個體符合所有 [SSH 連線先決條件](#ssh-prereqs-linux-from-linux-macos)。如果其符合所有先決條件，但您仍然無法連線至 Linux 執行個體，請參閱 [對連線至 Amazon EC2 Linux 執行個體的問題進行疑難排解](TroubleshootingInstancesConnecting.md)。

**Topics**
+ [SSH 連線先決條件](#ssh-prereqs-linux-from-linux-macos)
+ [使用 SSH 用戶端連接至 Linux 執行個體](#connect-linux-inst-sshClient)

## SSH 連線先決條件
<a name="ssh-prereqs-linux-from-linux-macos"></a>

在使用 SSH 連線到 Linux 執行個體之前，請完成下列任務。

**完成一般先決條件。**  
+ 請確認您的執行個體已通過狀態檢查。執行個體可能需要幾分鐘的時間準備就緒，以接受連線要求。如需詳細資訊，請參閱[檢視狀態檢查](viewing_status.md)。
+ [取得必要的執行個體詳細資訊](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
+ [找出私有金鑰並設定許可](connection-prereqs-general.md#connection-prereqs-private-key).
+ [(選用) 取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint).

**允許來自 IP 位址的傳入 SSH 流量。**  
請確保與執行個體關聯的安全群組允許來自您的 IP 地址的傳入 SSH 流量。如需詳細資訊，請參閱[從您電腦連線到執行個體的規則](security-group-rules-reference.md#sg-rules-local-access)。

**視需要在本機電腦安裝 SSH 用戶端。**  
您的本機電腦可能已預設安裝 SSH 用戶端。您可以在終端機視窗輸入下列命令來驗證這一點。若您的電腦無法識別該命令，您必須安裝 SSH 用戶端。  

```
ssh
```
以下是 Windows 的一些可能選項。如果您的電腦執行不同的作業系統，請參閱該作業系統的文件以取得 SSH 用戶端選項。

## 在 Windows 安裝 OpenSSL
<a name="openssh"></a>

在 Windows 安裝 OpenSSH 後，您可以使用 SSH 從 Windows 電腦連線至 Linux 執行個體。開始之前，請確定符合下列要求。

**Windows 版本**  
電腦上的 Windows 版本必須是 Windows Server 2019 或更新版本。  
對於舊版 Windows，請下載並安裝 [Win32-OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki)。

**PowerShell 需求**  
若要使用 PowerShell 在您的 Windows 作業系統中安裝 OpenSSH，您必須執行 PowerShell 5.1 版或更高版本，並且您的帳戶必須是內建管理員群組的成員。從 PowerShell 執行 `$PSVersionTable.PSVersion` 以檢查您的 PowerShell 版本。  
若要檢查您是否是內建管理員群組的成員，請執行下列 PowerShell 命令：  

```
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
```
如果您是內建管理員群組的成員，則輸出為 `True`。

若要使用 PowerShell 安裝適用於 Windows 的 OpenSSH，請執行下列 PowerShell 命令。

```
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

以下為範例輸出。

```
Path          :
Online        : True
RestartNeeded : False
```

若要使用 PowerShell 從 Windows 中解除安裝 OpenSSH，請執行下列 PowerShell 命令。

```
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

以下為範例輸出。

```
Path          :
Online        : True
RestartNeeded : True
```

## 安裝適用於 Linux 的 Windows 子系統 (WSL)
<a name="WSL"></a>

在 Windows 安裝 WSL 之後，您可以使用 Linux 命令列工具，例如 SSH 用戶端，從 Windows 電腦連線至 Linux 執行個體。

請遵循中的說明進行[在 EC2 Windows 執行個體安裝適用於 Linux 的 Windows 子系統](install-wsl-on-ec2-windows-instance.md) 如果您遵循 Microsoft 安裝指南的指示，他們會安裝 Linux 的 Ubuntu 發行版本。您可以視需要安裝不同的 Linux 發行版本。

在 WSL 終端機視窗中，將 `.pem` 檔案 (針對您在啟動時為執行個體指定的金鑰對) 從 Windows 複製到 WSL。請記下 `.pem` 檔案在 WSL 上的完整路徑，以便於在連接至執行個體時使用。如需有關如何指定 Windows 硬碟路徑的資訊，請參閱[如何存取 C 磁碟機？](https://learn.microsoft.com/en-us/windows/wsl/faq#how-do-i-access-my-c--drive-)。

```
cp /mnt/<Windows drive letter>/path/my-key-pair.pem ~/WSL-path/my-key-pair.pem
```

如需有關解除安裝適用於 Linux 的 Windows 子系統的資訊，請參閱[如何解除安裝 WSL 發行版本？](https://learn.microsoft.com/en-us/windows/wsl/faq#how-do-i-uninstall-a-wsl-distribution-)。

## 使用 SSH 用戶端連接至 Linux 執行個體
<a name="connect-linux-inst-sshClient"></a>

請使用下列程序使用 SSH 用戶端連線至您的 Linux 執行個體。

**使用 SSH 用戶端連線至執行個體**

1. 在電腦開啟終端機視窗。

1. 若要連線至執行個體，請使用 **ssh** 命令。您需要在先決條件收集之執行個體的詳細資訊。例如，您需要私有金鑰 (`.pem` 檔案) 的位置、使用者名稱，以及公有 DNS 名稱或 IPv6 地址。下面是範例命令。
   + (公有 DNS) 若要使用公有 DNS 名稱，請輸入下列命令。

     ```
     ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
     ```
   + (IPv6) 或者，如果您的執行個體具有 IPv6 地址，請輸入下列命令以使用 IPv6 地址。

     ```
     ssh -i /path/key-pair-name.pem instance-user-name@2001:db8::1234:5678:1.2.3.4
     ```

   以下是回應範例。

   ```
   The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (198-51-100-1)' can't be established.
   ECDSA key fingerprint is l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY.
   Are you sure you want to continue connecting (yes/no)?
   ```

1. (選用) 確認安全提醒中的指紋與指紋是否相符。如果這些指紋不符合，可能有人嘗試發動中間人攻擊。如果它們符合，請繼續下一個步驟。如需詳細資訊，請參閱[取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint)。

1. 輸入 **yes**。

   您會看到如下的回應：

   ```
   Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (ECDSA) to the list of known hosts.
   ```

# 使用 PuTTY 連線至您的 Linux 執行個體
<a name="connect-linux-inst-from-windows"></a>

您可以使用 PuTTY (適用於 Windows 的免費 SSH 用戶端) 連線到 Linux 執行個體。

如果執行的是 Windows Server 2019 或更高版本，建議您使用 OpenSSH，這是一種透過 SSH 通訊協定進行遠端登入的開放原始碼連線工具。

**注意**  
如果您在嘗試連線至執行個體時收到錯誤訊息，請確認執行個體符合所有 [SSH 連線先決條件](connect-linux-inst-ssh.md#ssh-prereqs-linux-from-linux-macos)。如果其符合所有先決條件，但您仍然無法連線至 Linux 執行個體，請參閱 [對連線至 Amazon EC2 Linux 執行個體的問題進行疑難排解](TroubleshootingInstancesConnecting.md)。

**Topics**
+ [先決條件](#putty-prereqs)
+ [使用 PuTTYgen 轉換私有金鑰](#putty-private-key)
+ [連接至您的 Linux 執行個體](#putty-ssh)

## 先決條件
<a name="putty-prereqs"></a>

在使用 PuTTY 連線到 Linux 執行個體之前，請先完成下列任務。

**完成一般先決條件。**  
+ 請確認您的執行個體已通過狀態檢查。執行個體可能需要幾分鐘的時間準備就緒，以接受連線要求。如需詳細資訊，請參閱[檢視狀態檢查](viewing_status.md)。
+ [取得必要的執行個體詳細資訊](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
+ [找出私有金鑰並設定許可](connection-prereqs-general.md#connection-prereqs-private-key).
+ [(選用) 取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint).

**允許來自 IP 位址的傳入 SSH 流量。**  
請確保與執行個體關聯的安全群組允許來自您的 IP 地址的傳入 SSH 流量。如需詳細資訊，請參閱[從您電腦連線到執行個體的規則](security-group-rules-reference.md#sg-rules-local-access)。

**視需要在本機電腦安裝 PuTTY。**  
從 [PuTTY 下載頁面](https://www.chiark.greenend.org.uk/~sgtatham/putty/)下載並安裝 PuTTY。如已安裝舊版的 PuTTY，建議您下載最新版本。務必安裝整個套件。

**使用 PuTTYgen 將私有金鑰轉換為 PPK 格式。**  
您必須為啟動執行個體時指定的金鑰對指定私有金鑰。如果您以 .pem 格式建立私有金鑰，則必須將其轉換為 PPK 檔案以與 PuTTY 搭配使用。找到私有金鑰 (.pem 檔案)，然後按照 [使用 PuTTYgen 轉換私有金鑰](#putty-private-key) 中的步驟操作。

## (選用) 使用 PuTTYgen 轉換私有金鑰
<a name="putty-private-key"></a>

PuTTY 原生並不支援 PEM 格式的 SSH 金鑰。PuTTY 提供一套名為 PuTTYgen 的工具，可將 PEM 金鑰轉換為 PuTTY 所需的 PPK 格式。如果您使用 PEM 格式而非 PPK 格式建立金鑰，則必須將私有金鑰 (.pem 檔案) 轉換為此格式 (.ppk 檔案)，才能搭配 PuTTY 使用。

**將私有私鑰從 PEM 格式轉換為 PPK 格式**

1. 從 **Start (開始)** 功能表中選擇 **All Programs (所有程式)**、**PuTTY**、**PuTTYgen**。

1. 在 **Type of key to generate (要產生的金鑰類型)** 下，選擇 **RSA (SSH-2 RSA)**。如果您的 PuTTYgen 版本不包含此選項，請選擇 **SSH-2 RSA**。  
![\[PuTTYgen 中的 RSA 金鑰。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/puttygen-key-type.png)

1. 選擇 **Load** (載入)。根據預設，PuTTYgen 只會顯示副檔名為 `.ppk` 的檔案。若要尋找您的 `.pem` 檔案，請選擇顯示所有類型之檔案的選項。  
![\[選取所有檔案類型。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/puttygen-load-key.png)

1. 為您在啟動執行個體時所指定的金鑰對選取 `.pem` 檔案，然後選取 **Open (開啟)**。PuTTYgen 會顯示一個通知，指出 `.pem` 檔案已成功匯入。選擇 **OK** (確定)。

1. 若要以 PuTTY 可使用的格式儲存金鑰，請選擇 **Save private key** (儲存私有金鑰)。PuTTYgen 會顯示有關儲存沒有密碼短語之金鑰的警告。選擇 **Yes (是)**。
**注意**  
私有金鑰上的複雜密碼是額外一層保護。即使有人探索到您的私有金鑰，在沒有複雜密碼的情況下就無法使用您的私有金鑰。使用複雜密碼的缺點是提高自動化的難度，因為需要人力介入登入執行個體，或將檔案複製到執行個體。

1. 為您用於金鑰對的金鑰指定相同名稱 (例如，`key-pair-name`)，然後選擇 **Save** (儲存)。PuTTY 會自動新增 `.ppk` 副檔名。

您的私有金鑰對現已有正確的格式可供 PuTTY 使用。您現在可以使用 PuTTY 的 SSH 用戶端連線至您的執行個體。

## 連接至您的 Linux 執行個體
<a name="putty-ssh"></a>

請使用下列程序使用 PuTTY 連線至您的 Linux 執行個體。需要您為私有金鑰建立的 `.ppk` 檔案。如需詳細資訊，請參閱上一節中的[(選用) 使用 PuTTYgen 轉換私有金鑰](#putty-private-key)。如果您在嘗試連線至執行個體時遇到錯誤，請參閱 [對連線至 Amazon EC2 Linux 執行個體的問題進行疑難排解](TroubleshootingInstancesConnecting.md)。

**最後測試的版本** – PuTTY .78

**使用 PuTTY 連線到您的執行個體**

1. 啟動 PuTTY (在**開始**選單搜尋 **PuTTY**，然後選擇**開啟**)。

1. 在 **Category (類別)** 窗格中選擇 **Session (工作階段)**，然後填妥下列欄位：

   1. 在 **Host Name (主機名稱)** 方塊中，執行下列其中一項作業：
      + (公有 DNS) 若要使用執行個體的公有 DNS 名稱連線，請輸入 *instance-user-name*@*instance-public-dns-name*。
      + (IPv6) 或者，如果您的執行個體具有 IPv6 位址，若要使用執行個體的 IPv6 位址進行連線，請輸入 *instance-user-name*@*2001:db8::1234:5678:1.2.3.4*。

      如需有關如何尋找您執行個體的使用者名稱，以及執行個體的公有 DNS 名稱或 IPv6 地址的詳細資訊，請參閱 [取得必要的執行個體詳細資訊](connection-prereqs-general.md#connection-prereqs-get-info-about-instance)。

   1. 確保 **Port (連接埠)** 值是 22。

   1. 在 **Connection type (連線類型)** 下，選取 **SSH**。  
![\[PuTTY 組態 - 工作階段。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/putty-session-config.png)

1. (選用) 您可設定 PuTTY 按定期間隔自動傳送保持連線資料，以保持工作階段持續作用。這對避免您執行個體因工作階段閒置而中斷連線很有幫助。在**類別**窗格中選擇**連線**，然後在**保持連線之間的秒數**中輸入所需間隔。例如，如果您的工作階段在閒置 10 分鐘後中斷連線，請輸入 180 以設定 PuTTY 每 3 分鐘傳送一次保持連線資料。

1. 在**類別**窗格中，展開**連線**、展開 **SSH**，然後選擇**身分驗證**。選擇**憑證**。

1. 在**要驗證的私有金鑰檔案**旁，選擇**瀏覽**。在**選取私有金鑰檔案**對話方塊中，選取您為金鑰對產生的 `.ppk` 檔案。您可以按兩下檔案，或在**選取私有金鑰檔案**對話方塊中選擇**開啟**。

1. (選用) 如果您打算稍後再次連線到此執行個體，可以儲存工作階段資訊以供日後使用。在**類別**窗格中，選擇**工作階段**。在**儲存的工作階段**中輸入工作階段的名稱，然後選擇**儲存**。

1. 若要連線至執行個體，請選擇**開啟**。

1. 如果這是您第一次連線到此執行個體，PuTTY 會顯示安全提醒對話方塊，詢問您是否信任要連線的主機。

   1. (選用) 確認安全提醒對話方塊中的指紋是否符合您之前在[(選用) 取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint)中取得的指紋。如果這些指紋不符合，可能有人嘗試發動中間人攻擊。如果它們符合，請繼續下一個步驟。

   1. 選擇 **Accept (接受)**。隨即開啟視窗，您會連線到您的執行個體。
**注意**  
當您將私有金鑰轉換成 PuTTY 格式時，如已指定複雜密碼，您必須在登入執行個體時提供該複雜密碼。

如果您在嘗試連線至執行個體時遇到錯誤，請參閱 [對連線至 Amazon EC2 Linux 執行個體的問題進行疑難排解](TroubleshootingInstancesConnecting.md)。

# 使用 SCP 將檔案傳輸至 Linux 執行個體
<a name="linux-file-transfer-scp"></a>

在本機電腦和 Linux 執行個體之間傳輸檔案的一種方式是使用安全複製通訊協定 (SCP)。SCP 是簡單操作的理想選項，例如一次性檔案複製。SCP 會使用您透過 SSH 連線至執行個體時所用的相同 .pem 檔案，以保障檔案傳輸的安全性。若您需要保持檔案同步，或者若檔案很大，則 **rsync** 比 SCP 更快、效率更高。為了安全起見，請透過 SSH 使用 **rsync**，因為 **rsync** 預設會使用純文字傳輸資料。

使用 SCP 連線到您的 Linux 執行個體之前，請先完成下列先決條件：
+ **完成一般先決條件。**
  + 請確認您的執行個體已通過狀態檢查。執行個體可能需要幾分鐘的時間準備就緒，以接受連線要求。如需詳細資訊，請參閱[檢視狀態檢查](viewing_status.md)。
  + [取得必要的執行個體詳細資訊](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
  + [找出私有金鑰並設定許可](connection-prereqs-general.md#connection-prereqs-private-key).
  + [(選用) 取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint).
+ **允許來自 IP 位址的傳入 SSH 流量。**

  請確保與執行個體關聯的安全群組允許來自您的 IP 地址的傳入 SSH 流量。如需詳細資訊，請參閱[從您電腦連線到執行個體的規則](security-group-rules-reference.md#sg-rules-local-access)。
+ **安裝 SCP 用戶端。**

  大部分的 Linux、Unix 和 Apple 電腦預設都包含 SCP 用戶端。如果您的電腦沒有 SCP 用戶端，OpenSSH 專案會提供 SSH 工具完整套件的免費實作，包括 SCP 用戶端。如需詳細資訊，請參閱 [https://www.openssh.com](https://www.openssh.com)。

下列程序會逐步引導您使用 SCP 使用執行個體的公有 DNS 名稱傳輸檔案，或是使用 IPv6 地址 (如果執行個體具備的話) 傳輸檔案。

**使用 SCP 在電腦和執行個體之間傳輸檔案**

1. 決定來源檔案在電腦上的位置，以及執行個體上的目的地路徑。在下列範例中，私有金鑰檔案的名稱為 `key-pair-name.pem`，要傳輸的檔案為 `my-file.txt`，執行個體的使用者名稱為 ec2-user，執行個體的公用 DNS 名稱為 `instance-public-dns-name`，而執行個體的 IPv6 地址為 `2001:db8::1234:5678:1.2.3.4`。
   + (公用 DNS) 若要將檔案傳輸到執行個體上的目的地，請從您的電腦輸入下列命令。

     ```
     scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@instance-public-dns-name:path/
     ```
   + (IPv6) 若要將檔案傳輸到執行個體上的目的地 (如果執行個體具有 IPv6 地址)，請從您的電腦輸入下列命令。IPv6 位址必須用方括號 (`[ ]`) 括住，必須逸出 (`\`)。

     ```
     scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@\[2001:db8::1234:5678:1.2.3.4\]:path/
     ```

1. 如果您尚未使用 SSH 連接到執行個體，則會看到如下所示的回應：

   ```
   The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)'
   can't be established.
   RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f.
   Are you sure you want to continue connecting (yes/no)?
   ```

   (選用) 您可以選用驗證安全性警示中的指紋是否符合執行個體指紋。如需詳細資訊，請參閱[(選用) 取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint)。

   輸入 **yes**。

1. 如果傳輸成功，則回應會和下列內容相似：

   ```
   Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
   to the list of known hosts.
   my-file.txt                                100%   480     24.4KB/s   00:00
   ```

1. 若要反向 (從 Amazon EC2 執行個體到您的電腦) 傳輸檔案，請反轉主機參數的順序。例如：您可以從 EC2 執行個體傳輸 `my-file.txt` 到本機電腦上的目的地 `my-file2.txt`，如下列範例所示。
   + (公用 DNS) 若要將檔案傳輸到電腦上的目的地，請從您的電腦輸入下列命令。

     ```
     scp -i /path/key-pair-name.pem ec2-user@instance-public-dns-name:path/my-file.txt path/my-file2.txt
     ```
   + (IPv6) 如果執行個體具有 IPv6 地址，欲將檔案傳輸到電腦上的目的地，請從您的電腦輸入下列命令。IPv6 位址必須用方括號 (`[ ]`) 括住，必須逸出 (`\`)。

     ```
     scp -i /path/key-pair-name.pem ec2-user@\[2001:db8::1234:5678:1.2.3.4\]:path/my-file.txt path/my-file2.txt
     ```

# 在您的 Amazon EC2 Linux 執行個體上管理系統使用者
<a name="managing-users"></a>

每個 Linux 執行個體都會使用預設 Linux 系統使用者來啟動。您可以將使用者新增至執行個體，並刪除使用者。

針對預設使用者，[預設使用者名稱](#ami-default-user-names)會取決於您啟動執行個體時所指定的 AMI。

**注意**  
預設情況下，密碼驗證和根登入會停用，而 sudo 會啟用。若要登入執行個體，您必須建立金鑰對。如需有關登入的詳細資訊，請參閱[使用 SSH 連線至您的 Linux 執行個體](connect-to-linux-instance.md)。  
您可以允許執行個體的密碼驗證和根登入。如需詳細資訊，請參閱適用於您作業系統的文件。

**注意**  
Linux 系統使用者不應和 IAM 使用者混淆。如需詳細資訊，請參閱「*IAM 使用者指南*」中的 [IAM 使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_iam-users)。

**Topics**
+ [預設使用者名稱](#ami-default-user-names)
+ [考量事項](#add-user-best-practice)
+ [建立使用者](#create-user-account)
+ [移除使用者](#delete-user-account)

## 預設使用者名稱
<a name="ami-default-user-names"></a>

EC2 執行個體的預設使用者名稱取決於您啟動執行個體時指定的 AMI。

預設使用者名稱為：
+ 針對 Amazon Linux AMI，使用者名稱為 `ec2-user`。
+ 針對 CentOS AMI，使用者名稱為 `centos` 或 `ec2-user`。
+ 針對 Debian AMI，使用者名稱為 `admin`。
+ 針對 Fedora AMI，使用者名稱為 `fedora` 或 `ec2-user`。
+ 針對 FreeBSD AMI，使用者名稱為 `ec2-user`。
+ 針對 RHEL AMI，使用者名稱為 `ec2-user` 或 `root`。
+ 針對 SUSE AMI，使用者名稱為 `ec2-user` 或 `root`。
+ 若為 Ubuntu AMI，使用者名稱為 `ubuntu`。
+ 針對 Oracle AMI，使用者名稱為 `ec2-user`。
+ 針對 Bitnami AMI，使用者名稱為 `bitnami`。

**注意**  
若要尋找其他 Linux 發行版本的預設使用者名稱，請向 AMI 供應商確認。

## 考量事項
<a name="add-user-best-practice"></a>

許多應用程式都適合使用預設使用者。不過，您可以選擇新增使用者，讓個人能有自己的檔案和工作空間。此外，為新使用者建立使用者也會比授予多名 (可能缺乏經驗) 預設使用者的存取權更安全，因為若預設使用者使用不當，可能會對系統造成重大傷害。如需詳細資訊，請參閱[保護 EC2 執行個體的要訣](https://aws.amazon.com/articles/tips-for-securing-your-ec2-instance/)。

若要讓使用者能夠使用 Linux 系統使用者，透過 SSH 存取您的 EC2 執行個體，您必須與使用者共用 SSH 金鑰。或者，您可以使用 EC2 Instance Connect 為使用者提供存取權限，如此就不需要共用和管理 SSH 金鑰。如需詳細資訊，請參閱[使用公有 IP 位址與 EC2 Instance Connect 連線至 Linux 執行個體](connect-linux-inst-eic.md)。

## 建立使用者
<a name="create-user-account"></a>

首先建立使用者，然後新增允許使用者連線至並登入執行個體的 SSH 公有金鑰。

**重要**  
在此程序的步驟 1 中，您會建立新的金鑰配對。由於金鑰配對的功能與密碼類似，因此安全地處理至關重要。如果您為使用者建立金鑰配對，則必須確保將私有金鑰安全地傳送給使用者。或者，使用者可以透過建立專屬金鑰配對，將私人金鑰安全地保存在其機器上，以完成步驟 1 和步驟 2，然後將公有金鑰傳送給您，以完成步驟 3 的流程。

**建立使用者**

1. [建立新的金鑰對](create-key-pairs.md#having-ec2-create-your-key-pair)。您必須將 `.pem` 檔案提供給您要為其建立使用者的使用者。他們必須使用此檔案來連接到執行個體。

1. 從您在上一個步驟中建立的金鑰對中，擷取公開金鑰。

   ```
   $ ssh-keygen -y -f /path_to_key_pair/key-pair-name.pem
   ```

   此命令會傳回公有金鑰，如下列範例所示。

   ```
   ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6Vhz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXrlsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZqaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3RbBQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
   ```

1. 連線到執行個體。

1. 使用 **adduser** 命令建立使用者並將其新增到系統 (在 `/etc/passwd` 檔案中具有項目)。此命令也會為使用者建立群組和主目錄。在此範例中，使用者命名為 `newuser`。
   + AL2023 和 Amazon Linux 2

     如果使用 AL2023 和 Amazon Linux 2，則在預設情況下，建立的使用者已停用密碼驗證。

     ```
     [ec2-user ~]$ sudo adduser newuser
     ```
   + Ubuntu

     包含 `--disabled-password` 參數，以建立已停用密碼驗證的使用者。

     ```
     [ubuntu ~]$ sudo adduser newuser --disabled-password
     ```

1. 切換到新的使用者，以便您建立的目錄和檔案可擁有適當的所有權。

   ```
   [ec2-user ~]$ sudo su - newuser
   ```

   此提示會從 `ec2-user` 變更為 `newuser`，表示您已將 shell 工作階段切換至新使用者。

1. 將 SSH 公有金鑰新增到使用者。首先在使用者的主目錄中建立 SSH 金鑰檔案的目錄、然後建立金鑰檔案，最後將公有金鑰貼到金鑰檔案中，如下列子步驟中所示。

   1. 在 `.ssh` 主目錄中建立 `newuser` 目錄，然後將其檔案許可變更為 `700` (只有擁有者能讀取、寫入和開啟目錄)。

      ```
      [newuser ~]$ mkdir .ssh
      ```

      ```
      [newuser ~]$ chmod 700 .ssh
      ```
**重要**  
若沒有這些明確的檔案許可，使用者將無法登入。

   1. 在 `.ssh` 目錄中建立名為 `authorized_keys` 的檔案，然後將其檔案許可變更為 `600` (只有擁有者能讀取和寫入檔案)。

      ```
      [newuser ~]$ touch .ssh/authorized_keys
      ```

      ```
      [newuser ~]$ chmod 600 .ssh/authorized_keys
      ```
**重要**  
若沒有這些明確的檔案許可，使用者將無法登入。

   1. <a name="edit_auth_keys"></a>使用您喜愛的文字編輯器 (例如 **vim** 或 **nano**) 來開啟 `authorized_keys` 檔案。

      ```
      [newuser ~]$ nano .ssh/authorized_keys
      ```

      將您在**步驟 2** 中擷取到的公開金鑰貼到檔案中，並儲存這些變更。
**重要**  
請確定將此公開金鑰貼成連續一行。此公開金鑰絕對不可分成多行。

      使用者現在應該能使用對應到您為 `authorized_keys` 檔案新增之公有金鑰的私有金鑰，在您的執行個體上登入 `newuser` 使用者。如需連接至 Linux 執行個體之不同方法的詳細資訊，請參閱[使用 SSH 連線至您的 Linux 執行個體](connect-to-linux-instance.md)。

## 移除使用者
<a name="delete-user-account"></a>

若不再需要使用者，您可以移除該使用者，使該使用者無法再被使用。

使用 **userdel** 命令來移除系統的使用者。當指定 `-r` 參數時，也會同時刪除使用者的主目錄和郵件多工緩衝處理。若要保留使用者的主目錄和郵件多工緩衝處理，請忽略 `-r` 參數。

```
[ec2-user ~]$ sudo userdel -r olduser
```