使用 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 流量。有關更多信息,請參閱授權網絡訪問您的實例

 

 

為您的 Linux 實例授權入站流量

 

您可以采用安全組控制實例的流量,包括可到達您的實例的流量類型。例如,您可以只允許來自您家庭網絡的計算機使用 SSH 訪問您的實例。如果您的實例為 Web 服務器,那么您可以允許所有 IP 地址通過 HTTP 訪問您的實例,以便外部用戶能夠瀏覽您的 Web 服務器上的內容。

 

若要啟用對實例的網絡訪問,您必須允許該實例的入站流量。要為入站流量打開端口,您需要在啟動實例時向與實例關聯的安全組添加規則。

 

要連接到您的實例,您必須設置規則以向來自您計算機的公有 IP 地址的 SSH 流量授權。若要允許來自其他 IP 地址范圍的 SSH 流量,請為需要授權的每個范圍另外添加規則。

 

如果您需要啟用對 Windows 實例的網絡訪問,請參閱 Amazon EC2 用戶指南(適用於 Microsoft Windows 實例) 中的為 Windows 實例授權入站流量

 

在您開始之前

確定誰需要訪問您的實例;例如,您信任的單個主機或特定網絡。在這種情況下,我們會使用您本地系統的公有 IP 地址。您可以通過一項服務來獲取本地計算機的公有 IP 地址。例如,我們提供以下服務:http://checkip。amazonaws.com。要查找另一項可提供您的 IP 地址的服務,請使用搜索短語“what is my IP address”。如果您正通過 ISP 或從防火牆后面連接,沒有靜態 IP 地址,您需要找出客戶端計算機使用的 IP 地址范圍。

Caution

如果使用 0.0.0.0/0,則可以允許所有 IP 地址使用 SSH 訪問您的實例。這在測試環境中可以接受一小段時間,但是在生產環境中並不安全。在生產中,您將僅授權特定 IP 地址或地址范圍訪問您的實例。

有關安全組的更多信息,請參閱 Amazon EC2 個安全組(對於 Linux 實例)

 

針對發送到 Linux 實例的入站 SSH 流量添加規則

安全組用作相關實例的防火牆,可在實例級別控制入站和出站的數據流。您必須在安全組中添加規則,以便能夠使用 SSH 從您的 IP 地址連接到 Linux 實例。

使用控制台在安全組中為入站 SSH 流量添加規則

  1. 在 Amazon EC2 控制台的導航窗格中,選擇 Instances。選擇實例並查看 Description (描述)選項卡;Security groups (安全組) 列出了與該實例關聯的安全組。選擇 view rules,以顯示對實例生效的規則列表。

  2. 在導航窗格中,選擇 Security Groups。選擇與您的實例相關聯的一個 安全組。

  3. 在詳細信息窗格中的 Inbound 選項卡上,選擇 Edit。在對話框中,選擇 Add Rule,然后從Type 列表中選擇 SSH。

  4. 在 Source (源) 字段中,用 CIDR 表示法指定您計算機的公有 IP 地址。例如,如果您的 IP 地址為 203.0.113.25,請指定 203.0.113.25/32,以便用 CIDR 表示法列出此 IP 地址。如果您的公司要分配同一范圍內的地址,請指定整個范圍,例如 203.0.113.0/24

    有關查找 IP 地址的信息,請參閱在您開始之前

  5. 選擇 Save。

使用命令行向安全組添加規則

您可以使用以下任一命令。請確保此命令在您的本地系統中運行,而不是針對實例本身。有關這些命令行界面的更多信息,請參閱 訪問 Amazon EC2

 

向實例分配安全組

在啟動實例時,您可以向實例分配安全組。在添加或刪除規則時,所做的更改將自動應用於已分配安全組的所有實例。

在 EC2-Classic 中啟動實例后,您就不能再更改其安全組。在 VPC 中啟動實例后,您可以更改其安全組。想要了解更多有關信息,請參閱 Amazon VPC 用戶指南中的更改實例的安全組主題。

 

  •  

    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