使用 PuTTY 從 Windows 連接到 Linux 實例

http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/putty.html#Transfer_WinSCP

使用 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 (IPv4) 列;如果此列處於隱藏狀態,請選擇Show/Hide 圖標並選擇 Public DNS (IPv4))。如果您願意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (適用於 Windows PowerShell 的 AWS 工具) 命令。

  • (僅限 IPv6) 獲取實例的 IPv6 地址

    如果您已將 IPv6 地址分配給您的實例,則可選擇使用實例的 IPv6 地址而非公共 IPv4 地址或公共 IPv4 DNS 主機名來連接實例。您的本地計算機必須擁有 IPv6 地址,且必須配置爲使用 IPv6。可使用 Amazon EC2 控制檯 (選中 IPv6 IPs 字段) 獲取實例的 IPv6 地址。如果您願意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (適用於 Windows PowerShell 的 AWS 工具) 命令。有關 IPv6 的更多信息,請參閱IPv6 地址

  • 查找私有密鑰

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

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

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

    Important

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

使用 PuTTYgen 轉換您的私有密鑰

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

轉換您的私有密鑰

  1. 啓動 PuTTYgen (例如,在開始菜單中,選擇 All Programs > PuTTY > PuTTYgen)。

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

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

    選擇所有文件類型

  4. 選擇您在啓動實例時指定的密鑰對的 .pem 文件,然後選擇 打開。選擇 OK 關閉確認對話框。

  5. 選擇 Save private key,以 PuTTY 可以使用的格式保存密鑰。PuTTYgen 顯示一條關於在沒有口令的情況下保存密鑰的警告。選擇

    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 (在開始菜單中,選擇 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. (僅限 IPv6) 要使用實例的 IPv6 地址連接,請輸入 user_name@ipv6_address。確保爲您的 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 供應商覈實。

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

    4. 確保 Port (端口) 爲 22。

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

    1. 選擇 Browse

    2. 選擇您爲密鑰對生成的 .ppk 文件,然後選擇打開

    3. (可選)如果打算稍後重新啓動此會話,則可以保存此會話信息以便日後使用。在類別樹中選擇會話,在 Saved Sessions 中輸入會話名稱,然後選擇保存

    4. 選擇打開以便開始 PuTTY 會話。

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

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

  7. 選擇。此時會打開一個窗口並且您連接到了您的實例。

    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

(僅限 IPv6) 以下示例使用實例的 IPv6 地址傳輸文件 Sample_file.txt。IPv6 地址必須以方括號 ([]) 括起。

C:\> pscp -i C:\Keys\my-key-pair.ppk C:\Sample_file.txt user_name@[ipv6-address]:/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 登錄屏幕中,對於 Host name,請輸入實例的公有 DNS 主機名稱或公有 IPv4 地址。

    Note

    (僅限 IPv6) 要使用實例的 IPv6 地址登錄,請輸入實例的 IPv6 地址。

  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. (可選) 在左側面板中,選擇 Directories,然後對於 Remote directory,請輸入要將文件添加到其中的目錄路徑。對於更新版本的 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章