跳至主要內容

PLINK 備忘錄

· 4 分鐘閱讀

這篇備忘錄記錄了 PLINK。

資訊

PLINK (PuTTY Link) 是 PuTTY 套件中的一個命令行工具,主要用於在 Windows 環境下通過命令行執行 SSH、Telnet 和 Rlogin 連接。它對於腳本化和自動化遠端操作非常有用。

與 PuTTY GUI 相比,PLINK 提供了無需圖形界面的方式來連接遠端伺服器,非常適合在批處理文件、PowerShell 腳本或 CI/CD 環境中使用。

PLINK 是 PuTTY 套件的一部分。你不需要單獨安裝它,只需下載 PuTTY 官方網站提供的 PuTTY 套件。

  1. 訪問 PuTTY 官方網站https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  2. 下載 plink.exe:你可以選擇下載獨立的 plink.exe 可執行文件,或者下載整個 PuTTY 安裝程式。
  3. plink.exe 放置到 PATH 路徑:為了方便在任何地方調用 plink,建議將 plink.exe 所在的目錄添加到 Windows 的環境變量 PATH 中。

PLINK 的基本語法與 SSH 類似,但有其特有的選項。

基本連接

plink [user@]host [command]

範例:連接到遠端伺服器並執行 ls -l 命令。

plink [email protected] ls -l /var/www

如果沒有指定命令,PLINK 會啟動一個交互式 Shell 會話。

端口指定

使用 -P 選項指定端口(注意是大寫 P)。

plink -P 2222 [email protected]

使用私鑰文件

PLINK 支持使用 PuTTY 專有的 .ppk 格式的私鑰文件進行身份驗證。你需要使用 PuTTYgen 工具將 OpenSSH 格式的私鑰轉換為 .ppk 格式。

plink -i C:\path	o\your\private_key.ppk [email protected]

傳輸輸出到文件

你可以將 PLINK 執行的遠端命令的輸出重定向到本地文件。

plink [email protected] "cat /etc/nginx/nginx.conf" > nginx_config.txt

執行多個命令

通過將命令用引號括起來,可以在遠端執行多個命令。

plink [email protected] "cd /var/www/html && git pull origin main"

3. 免密碼登錄 (使用私鑰和 PuTTYgen)

為了實現免密碼登錄,你需要:

  1. 生成 OpenSSH 密鑰對 (如果還沒有)。 在 Linux/WSL/Git Bash 中:ssh-keygen -t rsa -b 4096

  2. 將公鑰部署到遠端伺服器。 使用 ssh-copy-id 或手動將公鑰內容添加到遠端伺服器的 ~/.ssh/authorized_keys 文件中。

  3. 使用 PuTTYgen 將私鑰轉換為 .ppk 格式

    • 打開 PuTTYgen。
    • 點擊 Load,選擇你的 OpenSSH 私鑰文件 (id_rsa)。
    • 輸入私鑰的密碼(如果有)。
    • 點擊 Save private key,將其保存為 .ppk 格式。你可以選擇不設置密碼。
  4. 使用 PLINK 和 .ppk 文件連接

    plink -i C:\path	o\your\id_rsa.ppk [email protected] "your_command"
  • -ssh:強制使用 SSH 協議。
  • -batch:防止 PLINK 提示用戶輸入密碼或接受主機密鑰(適用於腳本)。
  • -pw password:直接在命令行中提供密碼(不安全,應盡量避免)。
  • -N:不執行遠端命令,僅用於端口轉發(隧道)。
  • -L, -R, -D:用於本地、遠端、動態端口轉發(SSH 隧道)。

5. 與批處理文件和 PowerShell 腳本結合

PLINK 在自動化任務中非常有用。

批處理文件範例 (deploy.bat)

@echo off
set [email protected]
set KEY="C:\path o\your\private_key.ppk"
set REMOTE_DIR=/var/www/html

echo 連接到 %HOST% 並部署...
plink -i %KEY% %HOST% "cd %REMOTE_DIR% && git pull origin main && npm install && npm run build"
if %ERRORLEVEL% NEQ 0 (
echo 部署失敗!
exit /b %ERRORLEVEL%
)
echo 部署成功!

總結

PLINK 是 Windows 用戶在命令行環境中執行 SSH 和其他遠端連接的強大工具。它在自動化腳本、CI/CD 流程以及無需圖形界面的遠端操作中扮演著重要角色。通過理解其基本用法和如何與私鑰文件結合,可以大大提高遠端管理的效率和安全性。

コメント

読み込み中...

コメントを投稿する