WeHelp
AWS (Amazon Web Services) 是全球最大的雲端運算平台,提供超過 200 種功能完整的隨選即用服務。
  1. 簡介 AWS 雲端服務
  2. AWS 會員帳戶註冊
  3. AWS EC2 伺服器
  4. SSH 遠端管理
  5. FastAPI 網站應用
  6. Node Express 網站應用
  7. PHP Laravel 網站應用
SSH 遠端管理
# 遠端管理 AWS EC2 的基本觀念 AWS EC2 是雲端中的虛擬伺服器。建立 EC2 後,通常需要透過網路從自己的電腦連入,進行以下管理工作: - 安裝套件與應用程式 - 修改設定檔 - 啟動或停止服務 - 上傳與下載檔案 - 查看日誌與系統狀態 - 執行部署或維護工作 遠端登入是否成功,通常取決於以下幾項設定: 1. **EC2 是否正在執行** 2. **是否有可連線的 IP 位址** - Public IPv4 address - Elastic IP - 或透過 VPN、堡壘機、AWS Systems Manager 連入私有網路 3. **Security Group 是否開放正確連接埠** 4. **登入帳號是否正確** 5. **金鑰或密碼是否正確** 6. **作業系統類型** - Linux 通常使用 SSH - Windows Server 通常使用 RDP --- # 一、建立 EC2 時應注意的設定 ## 1. Key pair(金鑰對) 建立 EC2 時,AWS 通常會要求選擇或建立 Key pair。 常見檔案格式: - `.pem`:Linux、macOS、Windows OpenSSH 常用 - `.ppk`:PuTTY 常用 私鑰只能下載一次,應妥善保管,不能公開或上傳到 GitHub。 例如: ```text my-ec2-key.pem ``` --- ## 2. Security Group Security Group 類似虛擬防火牆,必須允許你的電腦連入相應連接埠。 常見設定: | 用途 | 通訊協定 | 連接埠 | 建議來源 | |---|---|---:|---| | Linux SSH | TCP | 22 | My IP | | Windows Remote Desktop | TCP | 3389 | My IP | | Web HTTP | TCP | 80 | 0.0.0.0/0 | | Web HTTPS | TCP | 443 | 0.0.0.0/0 | 建議不要將 SSH 或 RDP 開放給所有來源: ```text 0.0.0.0/0 ``` 較安全的做法是選擇: ```text My IP ``` 或指定公司的固定公網 IP。 --- ## 3. 取得 EC2 的連線資訊 在 AWS Console: 1. 進入 **EC2** 2. 選擇 **Instances** 3. 點選自己的執行個體 4. 查看: - Public IPv4 address - Public IPv4 DNS - Private IPv4 address - Security Group - Instance state 假設公網 IP 為: ```text 203.0.113.10 ``` --- # 二、Linux EC2:使用 SSH 遠端登入 Linux EC2 通常使用 SSH,透過金鑰驗證,不使用一般密碼登入。 常見預設登入帳號: | AMI | 預設使用者 | |---|---| | Amazon Linux | `ec2-user` | | Ubuntu | `ubuntu` | | Debian | `admin` 或 `debian` | | CentOS | `centos` | | RHEL | `ec2-user` 或 `root` | | Fedora | `fedora` | 實際帳號應以 AWS 建立執行個體時顯示的連線說明為準。 --- # 三、在 Mac 上登入 Linux EC2 macOS 內建 Terminal 與 SSH,不需要額外安裝軟體。 ## 步驟 1:開啟 Terminal 可以使用: ```text Applications → Utilities → Terminal ``` 或使用 Spotlight 搜尋「Terminal」。 --- ## 步驟 2:設定私鑰權限 假設私鑰放在下載資料夾: ```bash chmod 400 ~/Downloads/my-ec2-key.pem ``` SSH 通常要求私鑰不能被其他使用者讀取,否則可能出現: ```text Permissions 0644 for 'xxx.pem' are too open ``` --- ## 步驟 3:執行 SSH 指令 以 Amazon Linux 為例: ```bash ssh -i ~/Downloads/my-ec2-key.pem ec2-user@203.0.113.10 ``` 以 Ubuntu 為例: ```bash ssh -i ~/Downloads/my-ec2-key.pem ubuntu@203.0.113.10 ``` 第一次連線時,可能會出現是否信任主機的提示: ```text Are you sure you want to continue connecting (yes/no/[fingerprint])? ``` 確認 IP 正確後輸入: ```text yes ``` 成功後,就會進入 EC2 的命令列環境。 --- ## 使用 AWS Console 產生連線指令 也可以在 EC2 Instance 頁面: 1. 選擇執行個體 2. 按 **Connect** 3. 選擇 **SSH client** 4. 複製 AWS 顯示的指令 5. 在 Mac Terminal 執行 這樣可以減少登入帳號或參數輸入錯誤。 --- # 四、在 Windows 上登入 Linux EC2 Windows 有幾種常見方式。 ## 方法一:使用 PowerShell 或 Windows Terminal 較新的 Windows 通常內建 OpenSSH Client。 開啟: - Windows Terminal - PowerShell - 命令提示字元 假設 `.pem` 檔案位於: ```text C:\Users\YourName\Downloads\my-ec2-key.pem ``` 執行: ```powershell ssh -i C:\Users\YourName\Downloads\my-ec2-key.pem ec2-user@203.0.113.10 ``` Ubuntu 伺服器則使用: ```powershell ssh -i C:\Users\YourName\Downloads\my-ec2-key.pem ubuntu@203.0.113.10 ``` Windows 路徑也可以使用引號: ```powershell ssh -i "C:\Users\YourName\Downloads\my-ec2-key.pem" ubuntu@203.0.113.10 ``` 如果出現找不到 `ssh`,可以在 Windows 的「選用功能」中安裝 **OpenSSH Client**,或使用 PuTTY。 --- ## 方法二:使用 PuTTY PuTTY 是 Windows 常見的 SSH 工具。 ### 1. 安裝 PuTTY 安裝: - PuTTY - PuTTYgen ### 2. 將 `.pem` 轉成 `.ppk` 開啟 PuTTYgen: 1. 按 **Load** 2. 選擇 `.pem` 檔案 3. 按 **Save private key** 4. 儲存為 `.ppk` ### 3. 設定 PuTTY 開啟 PuTTY,在 **Session** 輸入: - Host Name: ```text ec2-user@203.0.113.10 ``` 或: ```text ubuntu@203.0.113.10 ``` - Port:`22` - Connection type:`SSH` 接著到: ```text Connection → SSH → Auth → Credentials ``` 選擇剛才產生的 `.ppk` 檔案,最後按 **Open**。 --- # 五、Windows Server EC2:使用 RDP 遠端桌面 如果建立的是 Windows Server EC2,通常不是使用 SSH,而是使用 **Remote Desktop Protocol,RDP**。 RDP 預設使用: ```text TCP 3389 ``` ## 步驟 1:確認 Security Group 在 EC2 的 Security Group 中,新增: ```text Type: RDP Port: 3389 Source: My IP ``` 不建議開放: ```text 0.0.0.0/0 ``` --- ## 步驟 2:取得 Windows 管理員密碼 在 AWS Console: 1. 進入 EC2 2. 選擇 Windows 執行個體 3. 按 **Connect** 4. 選擇 **RDP client** 5. 按 **Get password** 6. 上傳建立 EC2 時使用的 `.pem` 私鑰 7. AWS 會解密並顯示: - 使用者名稱,通常是 `Administrator` - 密碼 注意:EC2 啟動後可能需要等待幾分鐘,才能取得密碼。 --- ## 步驟 3:Windows 電腦使用 Remote Desktop 在 Windows 上: 1. 開啟「遠端桌面連線」 2. 輸入 EC2 的 Public IPv4 address 3. 按 **Connect** 4. 輸入: - Username:`Administrator` - AWS 顯示的密碼 5. 接受憑證提示後登入 也可以使用執行視窗: ```text Win + R → mstsc ``` --- ## 步驟 4:Mac 使用 Microsoft Remote Desktop 在 Mac 上: 1. 從 Mac App Store 安裝 **Windows App** 或 **Microsoft Remote Desktop** 2. 新增 PC 3. 在 PC name 輸入 EC2 的 Public IPv4 address 4. 新增 User account: - Username:`Administrator` - Password:AWS 解密得到的密碼 5. 儲存並連線 --- # 六、常見連線錯誤與排查方式 ## 1. `Connection timed out` 通常原因: - Security Group 沒有開放 22 或 3389 - 開放來源不是目前的公網 IP - EC2 沒有 Public IP - EC2 位於私有子網路 - Network ACL 或路由設定阻擋 - EC2 尚未完全啟動 排查方式: - 確認 EC2 狀態為 `Running` - 確認連線的 IP 是目前的 Public IPv4 - 確認 Security Group 的來源 IP - 確認 VPC Route Table 有 Internet Gateway --- ## 2. `Permission denied (publickey)` 通常原因: - 登入帳號錯誤 - 私鑰不是建立該 EC2 時使用的金鑰 - 私鑰路徑錯誤 - Linux AMI 的預設使用者錯誤 可依序嘗試: ```bash ssh -i my-ec2-key.pem ec2-user@IP位址 ``` 或: ```bash ssh -i my-ec2-key.pem ubuntu@IP位址 ``` --- ## 3. `UNPROTECTED PRIVATE KEY FILE` Mac 或 Linux 可修正: ```bash chmod 400 my-ec2-key.pem ``` Windows 使用 OpenSSH 時,若權限錯誤,可以將私鑰移至只有自己可存取的資料夾,或調整檔案安全性權限。 --- ## 4. IP 位址改變 若 EC2 使用一般的 Public IPv4,停止再啟動後可能會取得新的 IP。 解決方式: - 使用 **Elastic IP** - 或透過 AWS Systems Manager 管理,不依賴公網 IP --- # 七、安全管理建議 1. SSH 和 RDP 只開放給自己的 IP。 2. 不要把 `.pem` 或 `.ppk` 放到公開儲存庫。 3. 不要透過聊天工具或郵件隨意傳送私鑰。 4. 登入後避免長期使用 `root`。 5. 使用 SSH key,而不是弱密碼。 6. Windows Server 應定期更新安全性修補程式。 7. 需要多人管理時,考慮: - AWS Systems Manager Session Manager - VPN - Bastion Host - IAM 與 CloudTrail 稽核 8. 不需要使用的 EC2 應停止或終止,避免持續產生費用。 簡單來說: - **Mac 登入 Linux EC2**:使用 Terminal 的 `ssh` - **Windows 登入 Linux EC2**:使用 PowerShell、Windows Terminal 或 PuTTY - **Windows Server EC2**:Windows 或 Mac 都使用 RDP - 登入前最重要的是確認 **IP、Security Group、登入帳號與金鑰** 都正確。
相關學習地圖、教學課程
Python 後端工程、資料庫
從 0 開始,成為後端工程師的學習路徑。