From fda11a659a0a491e5df5ca2e1671c866bb3b3d29 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 20 十月 2026 14:20:21 +0800
Subject: [PATCH] refactor(deploy): 更新部署脚本配置和SSH认证方式

---
 deploy.bat |   87 +++++++++++++++++++++----------------------
 1 files changed, 43 insertions(+), 44 deletions(-)

diff --git a/deploy.bat b/deploy.bat
index f07c556..243b917 100644
--- a/deploy.bat
+++ b/deploy.bat
@@ -9,16 +9,16 @@
 REM Configuration
 REM =========================
 
-set "COMPANY=TEST"
+set "COMPANY=KYZN"
 
 set "REMOTE_USER=root"
-set "REMOTE_HOST=36.213.90.123"
+set "REMOTE_HOST=36.213.150.237"
 set "REMOTE_PORT=65022"
 
-set "PASSWORD=Xdrjkj@10086#"
+set "PASSWORD=Sh@1008600"
 
 set "ZIP_FILE=dist.zip"
-set "REMOTE_DIR=/data/project/mom/vue/test/dist"
+set "REMOTE_DIR=/data/vue/mom/kyzn/dist"
 
 set "SSH_OPTS=-o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ServerAliveInterval=15 -o ServerAliveCountMax=3"
 
@@ -45,10 +45,12 @@
 
 
 REM ============================================================
-REM Check sshpass
+REM Check SSH password tool
 REM ============================================================
 
-echo [1/7] Checking sshpass...
+echo [1/7] Checking SSH password tool...
+
+set "SSH_TOOL=askpass"
 
 if exist "%SSHPASS_DIR%\sshpass.exe" (
     set "PATH=%SSHPASS_DIR%;%PATH%"
@@ -57,35 +59,13 @@
 where sshpass >nul 2>&1
 
 if not errorlevel 1 (
+    set "SSH_TOOL=sshpass"
     echo [OK] sshpass found.
     goto CHECK_PNPM
 )
 
-echo [WARN] sshpass not found.
-
-if not exist "%SSHPASS_DIR%" (
-    mkdir "%SSHPASS_DIR%" >nul 2>&1
-)
-
-if exist "%SSHPASS_DIR%\sshpass.exe" (
-    set "PATH=%SSHPASS_DIR%;%PATH%"
-    echo [OK] sshpass found.
-    goto CHECK_PNPM
-)
-
-echo [INFO] Downloading sshpass...
-
-powershell -NoProfile -ExecutionPolicy Bypass -Command "$url='https://github.com/xhcoding/sshpass-win32/releases/download/v1.0.3/sshpass.exe'; $out='%SSHPASS_DIR%\sshpass.exe'; Invoke-WebRequest -Uri $url -OutFile $out"
-
-if errorlevel 1 (
-    echo [ERROR] Failed to download sshpass.
-    echo [ERROR] Please install sshpass manually.
-    goto ERROR_EXIT
-)
-
-set "PATH=%SSHPASS_DIR%;%PATH%"
-
-echo [OK] sshpass installed.
+echo [INFO] sshpass not found. Using built-in SSH_ASKPASS instead.
+echo [INFO] No download required.
 
 
 REM ============================================================
@@ -219,10 +199,25 @@
 
 
 REM ============================================================
-REM Set sshpass password
+REM Set SSH authentication
 REM ============================================================
 
-set "SSHPASS=%PASSWORD%"
+if "%SSH_TOOL%"=="sshpass" (
+    set "SSHPASS=%PASSWORD%"
+    set "SSH_CMD=sshpass -e ssh"
+    set "SCP_CMD=sshpass -e scp"
+    echo [INFO] Using sshpass for authentication.
+) else (
+    set "ASKPASS_FILE=%TEMP%\~deploy_askpass_%RANDOM%.cmd"
+    > "!ASKPASS_FILE!" echo @echo off
+    >> "!ASKPASS_FILE!" echo echo %PASSWORD%
+    set "SSH_ASKPASS=!ASKPASS_FILE!"
+    set "SSH_ASKPASS_REQUIRE=force"
+    set "DISPLAY=:0"
+    set "SSH_CMD=ssh"
+    set "SCP_CMD=scp"
+    echo [INFO] Using SSH_ASKPASS for authentication.
+)
 
 
 REM ============================================================
@@ -232,7 +227,7 @@
 echo.
 echo [6/7] Testing SSH connection...
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "echo SSH_OK"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "echo SSH_OK"
 
 if errorlevel 1 (
     echo [ERROR] SSH connection failed.
@@ -249,7 +244,7 @@
 echo.
 echo [INFO] Creating remote directory...
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "mkdir -p '%REMOTE_DIR%'"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "mkdir -p '%REMOTE_DIR%'"
 
 if errorlevel 1 (
     echo [ERROR] Failed to create remote directory.
@@ -268,9 +263,9 @@
 
 set "REMOTE_TMP=%REMOTE_DIR%/.dist.zip.uploading"
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "rm -f '%REMOTE_TMP%'"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "rm -f '%REMOTE_TMP%'"
 
-sshpass -e scp -P %REMOTE_PORT% %SSH_OPTS% "%ZIP_FILE%" %REMOTE_USER%@%REMOTE_HOST%:"%REMOTE_TMP%"
+%SCP_CMD% -P %REMOTE_PORT% %SSH_OPTS% "%ZIP_FILE%" %REMOTE_USER%@%REMOTE_HOST%:"%REMOTE_TMP%"
 
 if errorlevel 1 (
     echo [ERROR] Upload failed.
@@ -287,7 +282,7 @@
 echo.
 echo [INFO] Checking remote package...
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "test -f '%REMOTE_TMP%'"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "test -f '%REMOTE_TMP%'"
 
 if errorlevel 1 (
     echo [ERROR] Remote package does not exist.
@@ -304,7 +299,7 @@
 echo.
 echo [INFO] Checking package size...
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "stat -c %%s '%REMOTE_TMP%'"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "stat -c %%s '%REMOTE_TMP%'"
 
 echo.
 
@@ -315,7 +310,7 @@
 
 echo [INFO] Activating package...
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "mv -f '%REMOTE_TMP%' '%REMOTE_DIR%/%ZIP_FILE%'"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "mv -f '%REMOTE_TMP%' '%REMOTE_DIR%/%ZIP_FILE%'"
 
 if errorlevel 1 (
     echo [ERROR] Failed to activate package.
@@ -332,7 +327,7 @@
 echo.
 echo [INFO] Checking unzip...
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "command -v unzip"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "command -v unzip"
 
 if errorlevel 1 (
     echo [ERROR] unzip is not installed on server.
@@ -355,7 +350,7 @@
 echo.
 echo [INFO] Testing remote ZIP...
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "cd '%REMOTE_DIR%' && unzip -t '%ZIP_FILE%'"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "cd '%REMOTE_DIR%' && unzip -t '%ZIP_FILE%'"
 
 if errorlevel 1 (
     echo.
@@ -374,7 +369,7 @@
 echo.
 echo [INFO] Extracting package...
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "cd '%REMOTE_DIR%' && unzip -o '%ZIP_FILE%'"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "cd '%REMOTE_DIR%' && unzip -o '%ZIP_FILE%'"
 
 if errorlevel 1 (
     echo.
@@ -394,7 +389,7 @@
 echo.
 echo [INFO] Removing remote ZIP...
 
-sshpass -e ssh -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "rm -f '%REMOTE_DIR%/%ZIP_FILE%'"
+%SSH_CMD% -p %REMOTE_PORT% %SSH_OPTS% %REMOTE_USER%@%REMOTE_HOST% "rm -f '%REMOTE_DIR%/%ZIP_FILE%'"
 
 if errorlevel 1 (
     echo [WARN] Failed to remove remote ZIP.
@@ -447,5 +442,9 @@
 
 :END
 
+if defined ASKPASS_FILE (
+    if exist "!ASKPASS_FILE!" del /f /q "!ASKPASS_FILE!" >nul 2>&1
+)
+
 pause
 endlocal
\ No newline at end of file

--
Gitblit v1.9.3