HELPER VPS

在 Windows 上透過 SSH 連線 VPS,PowerShell 與 PuTTY 用法

只要有一台 Windows 電腦,無需另購軟體就能直接連線 Linux 伺服器。我們整理了系統自帶的 PowerShell ssh 命令和久經使用的 PuTTY 兩種方法。

連線前的準備

SSH 是在自己的電腦與伺服器之間加密傳輸命令的方式。Linux VPS 建立時 SSH 伺服器就已開啟,預設連接埠為22。連線只需要三項資訊。

  • 伺服器的 IPv4 地址:顯示在伺服器頁面的概覽中。
  • 使用者名稱:一開始使用 root。
  • root 密碼:在伺服器頁面的 root 密碼欄點選“檢視”即可看到。設定後顯示7天,請儲存到密碼管理器中。

伺服器狀態變為執行中後再連線。如果伺服器正在建立或重灌,請稍等安裝完成。請把下面命令中的 YOUR_SERVER_IP 換成自己伺服器的 IPv4 地址後輸入。

方法1. 用 PowerShell 自帶的 ssh 命令連線

Windows 10 1809 版本以後和 Windows 11 預設自帶 OpenSSH 客戶端。無需另外安裝,在 PowerShell 或 Windows 終端中就能使用與 Mac、Linux 完全相同的 ssh 命令。

第1步. 開啟 PowerShell

在開始選單中搜尋 PowerShell 或終端並開啟。用下面的命令確認 ssh 是否就緒。顯示一行 OpenSSH 版本號就說明準備好了。

PowerShell
ssh -V

如果沒有顯示版本號,而是提示找不到命令,請在設定的“可選功能”中新增 OpenSSH 客戶端。Windows 11 在“設定 > 系統 > 可選功能”,Windows 10 在“設定 > 應用 > 可選功能”。也可以在管理員許可權的 PowerShell 中用下面一行命令新增。

PowerShell (管理員)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

第2步. 連線伺服器

PowerShell
ssh root@YOUR_SERVER_IP

首次連線時,會出現詢問是否儲存伺服器指紋的提示。輸入 yes 並按 Enter,指紋會儲存到電腦的 known_hosts 檔案中,之後不再詢問。接著出現 password 輸入欄時,貼上從伺服器頁面複製的 root 密碼。

在 Windows 終端和 PowerShell 視窗中,用滑鼠右鍵或 Ctrl+Shift+V 貼上。輸入密碼時螢幕上不顯示是正常的,只需貼上一次並按 Enter。提示符變成 root@伺服器名:~# 的樣子,就說明連線成功了。

第3步. 執行首條命令

連線後最好先把系統更新到最新。Ubuntu 和 Debian 執行 apt update && apt upgrade -y,AlmaLinux 和 Rocky Linux 執行 dnf upgrade -y。建立普通使用者和更新的步驟詳見首次登入指南。完成後用 exit 結束連線。

在 PowerShell 中用 SSH 金鑰免密碼連線

使用 SSH 金鑰,無需每次貼上密碼,面對猜測密碼的嘗試也更加穩固。在 Windows 上同樣用 ssh-keygen 命令生成金鑰。

PowerShell
ssh-keygen -t ed25519

詢問儲存位置時按 Enter 使用預設值,建議設定金鑰密碼(passphrase)。兩個檔案會生成在 C:\Users\使用者名稱\.ssh 目錄中。id_ed25519 是私鑰,只留在自己的電腦上;id_ed25519.pub 是放到伺服器上的公鑰。公鑰內容用下面的命令檢視並複製。

PowerShell
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

如果是新伺服器,把公鑰貼上入帳戶的 SSH 金鑰選單,建立伺服器時選擇該金鑰,從一開始就能用金鑰連線。步驟見 SSH 金鑰指南。已在使用的伺服器,用下面一行命令新增公鑰。此時只需輸入一次 root 密碼。

PowerShell
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@YOUR_SERVER_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

伺服器較多時,把連線資訊按名稱儲存會很方便。用記事本建立 C:\Users\使用者名稱\.ssh\config 檔案,按下面的格式寫入,就能用 ssh myvps 一個詞連線。

C:\Users\使用者名稱\.ssh\config
Host myvps
    HostName YOUR_SERVER_IP
    User root
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 30

ServerAliveInterval 30 每30秒傳送一次訊號,即使暫時離開,連線也能長時間保持。

方法2. 用 PuTTY 連線

PuTTY 是 Windows 上久經使用的免費 SSH 程式。如果喜歡按名稱儲存連線資訊、雙擊開啟的方式,PuTTY 很合適。從官方網站(putty.org)下載64位安裝包(MSI)安裝,PuTTY 和生成金鑰的 PuTTYgen 會一併裝好。

第1步. 輸入並儲存連線資訊

  • 開啟 PuTTY 會出現 Session 介面。
  • 在 Host Name 填入伺服器 IPv4 地址,Port 填入22,Connection type 保持 SSH 不變。
  • 在左側 Connection > Data 的 Auto-login username 中填入 root。
  • 在 Connection 的 Seconds between keepalives 中填入30,連線能長時間保持。
  • 回到 Session 介面,在 Saved Sessions 中填入名稱(例如:myvps)並點選 Save。

第2步. 連線

選擇儲存的名稱並點選 Open。首次會出現確認伺服器指紋的視窗,點選 Accept 即儲存指紋。出現 password 欄時,用滑鼠右鍵貼上 root 密碼並按 Enter。在 PuTTY 中,右鍵即貼上,拖選文字即複製。

第3步. 用 PuTTYgen 使用 SSH 金鑰

開啟 PuTTYgen,在 Key 類型中選擇 EdDSA(Ed25519)後點選 Generate,在空白處移動滑鼠直到進度條填滿。設定 Key passphrase,再用 Save private key 把私鑰儲存為 .ppk 檔案。

視窗上方 Public key for pasting into OpenSSH authorized_keys file 欄中顯示的一行就是公鑰。把這一行登記入帳戶的 SSH 金鑰選單,或貼上到已在用伺服器的 ~/.ssh/authorized_keys 檔案末尾。然後在 PuTTY 的 Connection > SSH > Auth > Credentials 中,為 Private key file for authentication 選擇 .ppk 檔案,回到 Session 介面再次點選 Save,之後即可免密碼連線。

想在 PuTTY 中也使用 PowerShell 生成的 OpenSSH 金鑰,用 PuTTYgen 的 Conversions > Import key 匯入 id_ed25519 並儲存為 .ppk 即可。一個金鑰兩個程式共用。

在 Windows 與伺服器之間傳輸檔案

PowerShell 中除了 ssh 還自帶 scp 命令。把電腦上的檔案上傳到伺服器,或把伺服器上的檔案下載到電腦時使用。

PowerShell
scp .\site.zip root@YOUR_SERVER_IP:/root/
scp root@YOUR_SERVER_IP:/root/backup.tar.gz .\

傳輸整個資料夾時加上 scp -r。喜歡像資源管理器那樣拖放的話,在 WinSCP 等 SFTP 程式中填入相同的地址、連接埠22和使用者 root 即可。WinSCP 可以直接匯入 PuTTY 中儲存的會話和 .ppk 金鑰。

無法連線時的排查步驟

大多是以下四種情況之一,按順序檢查很快就能重新連上。

  • Connection timed out:先確認伺服器狀態是否為執行中、IP 地址是否正確。如果開啟了防火牆,必須放行 SSH(22連接埠)。公司或學校的網路有時會封鎖22連接埠,可以換用手機熱點等其他網路試一次。
  • Permission denied:重新複製密碼,只貼上一次。也檢查一下前後是否一併複製了空格。超過7天看不到密碼時,在伺服器頁面用“生成新的 root 密碼”取得新密碼。
  • REMOTE HOST IDENTIFICATION HAS CHANGED:重灌伺服器後伺服器指紋會重新生成,因此出現該提示。用 ssh-keygen -R YOUR_SERVER_IP 刪除儲存的舊指紋後重新連線即可。
  • Connection refused:伺服器內的 SSH 服務停止了,或修改了連接埠。如果改了連接埠,用 ssh -p 連接埠號 root@YOUR_SERVER_IP 連線。

重新生成密碼和重灌後的連線步驟,整理在重灌與 root 密碼指南中。連線成功後,請按基礎防火牆指南只開放要用的連接埠。

接下來最好做的事

能用 SSH 金鑰連線後,關閉密碼登入可以讓伺服器更加穩固。先確認金鑰連線正常,再把伺服器上 /etc/ssh/sshd_config 檔案中的 PasswordAuthentication 改為 no,並重啟 SSH 服務。Ubuntu 和 Debian 用 systemctl restart ssh,AlmaLinux 用 systemctl restart sshd。

如果打算部署網站或應用,請接著閱讀 Docker 安裝指南或 WordPress 安裝指南。需要原樣使用 Windows 桌面的工作,透過遠端桌面連線的 Windows VPS 更合適。

推薦一起閱讀的指南

接著本指南做好會更好的設定。

檢視全部指南