使用Putty連接Amazon EC2 Instance


Amazon的EC2中,默認是不允許使用用戶名和密碼直接連接Instance的,而是通過AWS (Amazon Web Service)提供的證書。在第一次使用EC2的時候,AWS會要求你創建一個證書並下載,證書是一個.pem文件。在Linux上可以直接使用SSH來連接,比如:

ssh -i 證書.pem ec2-user@Instance的IP地址

在Windows中,可以使用Putty工具來進行SSH連接,只不過Putty不能直接使用的.pem格式的證書,需要轉換成.ppk才可以。這時就需要使用PuttyGen工具了(在同一個頁面就有下載):

1. 打開PuttyGen工具

2. 點擊Load加載.pem證書

3. 點擊Save private key來保存.ppk證書

新生成的證書就可以在Putty里使用了。

大致的使用方法是在Putty的設置Connection->SSH->Auth里添加.ppk證書,如下圖:

然后就可以使用Putty來連接EC2的Instance了,默認用戶名是ec2-user。

 

 

 

一下是官方教程:

使用 PuTTY 從 Windows 連接到 Linux 實例

啟動您的實例之后,您可以連接到該實例,然后像使用您面前的計算機一樣來使用它。

Note

啟動實例后,需要幾分鍾准備好實例,以便您能連接到實例。檢查您的實例是否通過了狀態檢查 - 您可以在 Instances (實例) 頁上的 Status Checks (狀態檢查) 列中查看此信息。

以下說明介紹如何使用 PuTTY(適用於 Windows 的免費 SSH 客戶端)連接到您的實例。如果您在嘗試連接到您的實例時收到錯誤消息,請參閱排查實例的連接問題

先決條件

使用 PuTTY 連接到您的 Linux 實例之前,請先完成以下先決條件:

  • 安裝 PuTTY

    從 PuTTY 下載頁面下載並安裝 PuTTY。如果您安裝的是舊版本的 PuTTY,建議您下載最新版本。確保安裝整個套件。

  • 獲得實例的 ID

    您可以通過使用 Amazon EC2 控制台(位於 Instance ID (實例 ID) 列中)獲得您的實例的 ID。如果您願意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (適用於 Windows PowerShell 的 AWS 工具) 命令。

  • 獲得實例的公有 DNS 名稱

    您可以使用 Amazon EC2 控制台獲取實例的公有 DNS(勾選 Public DNS (公有 DNS) 列;如果此列處於隱藏狀態,請單擊 Show/Hide (顯示/隱藏) 圖標並選擇 Public DNS (公有 DNS))。如果您願意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (適用於 Windows PowerShell 的 AWS 工具) 命令。

  • 查找私有密鑰

    您需要使用您在啟動實例時指定的密鑰對的 .pem 文件的完全限定路徑。

  • 允許從您的 IP 地址到您的實例的入站 SSH 流量

    確保與您的實例關聯的安全組允許來自您的 IP 地址的傳入 SSH 流量。有關更多信息,請參閱授權網絡訪問您的實例

    Important

    默認情況下,您的默認安全組不允許傳入 SSH 流量。

使用 PuTTYgen 轉換您的私有密鑰

PuTTY 本身不支持 Amazon EC2 生成的私有密鑰格式 (.pem)。PuTTY 有一個名為 PuTTYgen 的工具,可將密鑰轉換成所需的 PuTTY 格式 (.ppk)。您必須將私有密鑰轉換為此格式 (.ppk),然后才能嘗試使用 PuTTY 連接到您的實例。

轉換您的私有密鑰

  1. 啟動 PuTTYgen(例如,在“Start”菜單中,依次單擊“All Programs > PuTTY > PuTTYgen”)。

  2. 在 Type of key to generate (要生成的密鑰類型) 下,選擇 SSH-2 RSA。

    PuTTYgen 中的 SSH-2 RSA 密鑰
  3. 單擊“Load”。在默認情況下,PuTTYgen 僅顯示擴展名為 .ppk 的文件。要找到您的 .pem 文件,請選擇顯示所有類型的文件的選項。

     

    選擇所有文件類型

     

  4. 為啟動實例時指定的密鑰對選擇 .pem 文件,然后單擊 Open。單擊 OK (確定) 關閉確認對話框。

  5. 單擊 Save private key (保存私有密鑰),以 PuTTY 可用的格式保存密鑰。PuTTYgen 顯示一條關於在沒有口令的情況下保存密鑰的警告。單擊 Yes (是)。

    Note

    私有密鑰的口令是一層額外保護,因此,即使您的私有密鑰被泄露,在沒有口令的情況下,該密鑰仍不可用。使用口令的缺點是讓自動化變得更難,因為登錄到實例或復制文件到實例需要進行人為干預。

  6. 為該密鑰指定與密鑰對相同的名稱(如,my-key-pair)。PuTTY 自動添加 .ppk 文件擴展名。

您的私有密鑰格式現在是正確的 PuTTY 使用格式了。您現在可以使用 PuTTY 的 SSH 客戶端連接到實例。

啟動 PuTTY 會話

通過以下過程使用 PuTTY 連接到您的 Linux 實例。您將需要已為私鑰創建的 .ppk 文件。如果您在嘗試連接到您的實例時收到錯誤消息,請參閱排查實例的連接問題

啟動 PuTTY 會話

  1. (可選)您可以在本地系統(而不是實例)上使用以下命令之一驗證實例上的 RSA 密鑰指紋。如果您從第三方的公用 AMI 啟動了實例,則可能需要這樣做。找到 SSH HOST KEY FINGERPRINTS 部分,記下 RSA 指紋(例如 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f)並將它與實例的指紋進行比較。

    Note

    SSH HOST KEY FINGERPRINTS 部分僅在實例首次啟動之后可用。

  2. 啟動 PuTTY(在“Start”菜單中,單擊“All Programs > PuTTY > PuTTY”)。

  3. 在“Category (類別)”窗格中,選擇 Session (會話) 並填寫以下字段:

    1. 在 Host Name (主機名) 框中,輸入 user_name@public_dns_name。確保為您的 AMI 指定相應的用戶名。例如:在實例上點擊右鍵,然后選擇連接,就可以看到下邊的圖

      • 對於 Amazon Linux AMI,用戶名稱是 ec2-user

      • 對於 RHEL5 AMI,用戶名稱為 root 或 ec2-user

      • 對於 Ubuntu AMI,用戶名稱是 ubuntu

      • 對於 Fedora AMI,用戶名稱為 fedora 或 ec2-user

      • 對於 SUSE Linux,用戶名稱是 root 或 ec2-user

      • 另外,如果 ec2-user 和 root 無法使用,請與 AMI 供應商核實。

    2. 在 Connection type (連接類型) 下,選擇 SSH。

    3. 確保 Port (端口) 為 22。

    PuTTY 配置 - 會話
  4. 在 Category (類別) 窗格中,展開 Connection (連接),再展開 SSH,然后選擇 Auth (身份驗證)。完成以下操作:

    1. 單擊 Browse (瀏覽)。

    2. 選擇您為密鑰對生成的 .ppk 文件,然后單擊 Open (打開)。

    3. (可選)如果打算稍后重新啟動此會話,則可以保存此會話信息以便日后使用。在Category (類別) 樹中選擇 Session (會話),為 Saved Sessions (已存會話) 中的會話輸入一個名稱,然后單擊 Save (保存)。

    4. 單擊 Open (打開) 開始 PuTTY 會話。

    PuTTY 配置 - 身份驗證
  5. 如果這是您第一次連接到此實例,PuTTY 會顯示安全警告對話框,詢問您是否信任您要連接到的主機。

  6. (可選)驗證安全警報中的指紋是否與在步驟 1 中獲取的指紋匹配。如果這些指紋不匹配,則表示有人可能在試圖實施“中間人”攻擊。如果匹配,請繼續到下一步。

  7. 單擊 Yes (是)。此時會打開一個窗口並且您連接到了您的實例。

    Note

    如果您在將私有密鑰轉換成 PuTTY 格式時指定了口令,當您登錄到實例時,您必須提供該口令。

如果您在嘗試連接到您的實例時收到錯誤消息,請參閱排查實例的連接問題

使用 PuTTY 安全復制客戶端將文件傳輸到您的 Linux 實例

PuTTY 安全復制客戶端 (PSCP) 是一個命令行工具,您可以用它在 Windows 計算機與 Linux 實例之間傳輸文件。如果您更喜歡圖形用戶界面(GUI),您可以使用一種叫作“WinSCP”的開源 GUI 工具。有關更多信息,請參閱 使用 WinSCP 將文件傳輸到您的 Linux 實例

要使用 PSCP,您將需要在使用 PuTTYgen 轉換您的私有密鑰中生成的私有密鑰。您還需要 Linux 實例的公有 DNS 地址。

以下示例將文件 Sample_file.txt 從 Windows 計算機上的 C:\ 驅動器傳輸到 Linux 實例上的/usr/local 目錄:

C:\> pscp -i C:\Keys\my-key-pair.ppk C:\Sample_file.txt user_name@public_dns:/usr/local/Sample_file.txt

 

使用 WinSCP 將文件傳輸到您的 Linux 實例

WinSCP 是適用於 Windows 的基於 GUI 的文件管理器,您可以通過它來使用 SFTP、SCP、FTP 和 FTPS 協議將文件上傳並傳輸到遠程計算機。通過 WinSCP,您可以將 Windows 計算機中的文件拖放到 Linux 實例或同步這兩個系統之間的所有目錄結構。

要使用 WinSCP,您將需要在 使用 PuTTYgen 轉換您的私有密鑰 中生成的私有密鑰。您還需要 Linux 實例的公有 DNS 地址。

  1. 從 http://winscp.net/eng/download.php 上下載並安裝 WinSCP。對於大多數用戶而言,采用默認安裝選項就可以了。

  2. 啟動 WinSCP。

  3. 在 WinSCP login (WinSCP 登錄) 屏幕中,對於 Host name (主機名),請輸入實例的公有 DNS 地址。

  4. 對於 User name (用戶名),請輸入默認的 AMI 用戶名。對於 Amazon Linux AMI,用戶名是ec2-user。對於 Red Hat AMI,用戶名是 root,而對於 Ubuntu AMI,用戶名則是ubuntu

  5. 為您的實例指定私有密鑰。對於 Private key (私有密鑰),請輸入私有密鑰的路徑或單擊“…”按鈕以瀏覽文件。有關更新的 WinSCP 版本,您需要單擊 Advanced (高級) 打開高級網站設置,然后在 SSH 下單擊 Authentication (身份驗證) 以查找 Private key file (私有密鑰文件) 設置。

    Note

    WinSCP 需要 PuTTY 私有密鑰文件 (.ppk)。您可以使用 PuTTYgen 將 .pem 安全密鑰文件轉換成 .ppk 格式。有關更多信息,請參閱 使用 PuTTYgen 轉換您的私有密鑰

  6. (可選)在左側面板中,單擊 Remote directory (目錄),然后,對於 Directories (遠程目錄),輸入要將文件添加到其中的目錄路徑。有關更新版本的 WinSCP,您需要單擊 Advanced (高級) 打開高級網站設置,然后在 Environment (環境) 下單擊 Directories (目錄) 查找Remote directory (遠程目錄) 設置。

  7. 單擊 Login (登錄) 進行連接,然后單擊 Yes (是) 將主機指紋添加到主機緩存。

    WinSCP 屏幕
  8. 建立連接后,在連接窗口中,您的 Linux 實例顯示在右側,本地計算機顯示在左側。您可以直接將文件從本地計算機拖放到遠程文件系統。有關 WinSCP 的更多信息,請參閱http://winscp.net/eng/docs/start 中的項目文檔。

    Note

    如果您收到一條“Cannot execute SCP to start transfer”錯誤,則必須先在您的 Linux 實例上安裝 scp。對於某些操作系統,此命令會位於 openssh-clients 程序包中。對於 Amazon Linux 變體(如經 Amazon ECS 優化的 AMI),使用以下命令安裝 scp.

    [ec2-user ~]$ sudo yum install -y openssh-clients


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM