Added - SSH Known Hosts Manager
This commit is contained in:
243
files/ssh-known-hosts-manager.bat
Normal file
243
files/ssh-known-hosts-manager.bat
Normal file
@@ -0,0 +1,243 @@
|
||||
@echo off
|
||||
REM === SSH Known Hosts Manager ===
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
set SSH_DIR=%USERPROFILE%\.ssh
|
||||
set KNOWN_HOSTS=%SSH_DIR%\known_hosts
|
||||
set KNOWN_HOSTS_OLD=%SSH_DIR%\known_hosts.old
|
||||
|
||||
:MENU
|
||||
cls
|
||||
echo ========================================
|
||||
echo SSH Known Hosts Manager
|
||||
echo ========================================
|
||||
echo.
|
||||
echo SSH Directory: %SSH_DIR%
|
||||
echo.
|
||||
|
||||
REM Check if .ssh directory exists
|
||||
if not exist "%SSH_DIR%" (
|
||||
echo ERROR: .ssh directory not found!
|
||||
echo Directory does not exist: %SSH_DIR%
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM Check which files exist
|
||||
set HOSTS_EXISTS=0
|
||||
set HOSTS_OLD_EXISTS=0
|
||||
|
||||
if exist "%KNOWN_HOSTS%" set HOSTS_EXISTS=1
|
||||
if exist "%KNOWN_HOSTS_OLD%" set HOSTS_OLD_EXISTS=1
|
||||
|
||||
REM Display available files
|
||||
echo Available files:
|
||||
echo.
|
||||
|
||||
if %HOSTS_EXISTS%==0 if %HOSTS_OLD_EXISTS%==0 (
|
||||
echo No known_hosts files found!
|
||||
echo.
|
||||
pause
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
set FILE_COUNT=0
|
||||
|
||||
if %HOSTS_EXISTS%==1 (
|
||||
set /a FILE_COUNT+=1
|
||||
echo [!FILE_COUNT!] known_hosts
|
||||
set "FILE_1=HOSTS"
|
||||
)
|
||||
|
||||
if %HOSTS_OLD_EXISTS%==1 (
|
||||
set /a FILE_COUNT+=1
|
||||
echo [!FILE_COUNT!] known_hosts.old
|
||||
if %HOSTS_EXISTS%==1 (
|
||||
set "FILE_2=HOSTS_OLD"
|
||||
) else (
|
||||
set "FILE_1=HOSTS_OLD"
|
||||
)
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [0] Exit
|
||||
echo.
|
||||
echo ========================================
|
||||
set /p FILE_CHOICE="Select file to manage: "
|
||||
|
||||
if "%FILE_CHOICE%"=="0" goto EXIT
|
||||
|
||||
REM Determine which file was selected
|
||||
set "SELECTED_FILE="
|
||||
set "SELECTED_NAME="
|
||||
|
||||
if "%FILE_CHOICE%"=="1" (
|
||||
if "!FILE_1!"=="HOSTS" (
|
||||
set "SELECTED_FILE=%KNOWN_HOSTS%"
|
||||
set "SELECTED_NAME=known_hosts"
|
||||
) else if "!FILE_1!"=="HOSTS_OLD" (
|
||||
set "SELECTED_FILE=%KNOWN_HOSTS_OLD%"
|
||||
set "SELECTED_NAME=known_hosts.old"
|
||||
)
|
||||
)
|
||||
|
||||
if "%FILE_CHOICE%"=="2" (
|
||||
if "!FILE_2!"=="HOSTS_OLD" (
|
||||
set "SELECTED_FILE=%KNOWN_HOSTS_OLD%"
|
||||
set "SELECTED_NAME=known_hosts.old"
|
||||
)
|
||||
)
|
||||
|
||||
if "!SELECTED_FILE!"=="" (
|
||||
echo Invalid selection!
|
||||
timeout /t 2 >nul
|
||||
goto MENU
|
||||
)
|
||||
|
||||
:FILE_MENU
|
||||
cls
|
||||
echo ========================================
|
||||
echo Managing: !SELECTED_NAME!
|
||||
echo ========================================
|
||||
echo.
|
||||
echo [1] View file content
|
||||
echo [2] Delete specific line
|
||||
echo [3] Delete entire file
|
||||
echo [0] Back to file selection
|
||||
echo.
|
||||
echo ========================================
|
||||
set /p ACTION="Select action: "
|
||||
|
||||
if "%ACTION%"=="1" goto VIEW_FILE
|
||||
if "%ACTION%"=="2" goto DELETE_LINE
|
||||
if "%ACTION%"=="3" goto DELETE_FILE
|
||||
if "%ACTION%"=="0" goto MENU
|
||||
goto FILE_MENU
|
||||
|
||||
:VIEW_FILE
|
||||
cls
|
||||
echo ========================================
|
||||
echo Content of !SELECTED_NAME!
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
set LINE_NUM=0
|
||||
for /f "delims=" %%a in (!SELECTED_FILE!) do (
|
||||
set /a LINE_NUM+=1
|
||||
echo [!LINE_NUM!] %%a
|
||||
)
|
||||
|
||||
if %LINE_NUM%==0 (
|
||||
echo File is empty
|
||||
)
|
||||
|
||||
echo.
|
||||
echo Total lines: %LINE_NUM%
|
||||
echo.
|
||||
pause
|
||||
goto FILE_MENU
|
||||
|
||||
:DELETE_LINE
|
||||
cls
|
||||
echo ========================================
|
||||
echo Delete Line from !SELECTED_NAME!
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
echo Current content:
|
||||
echo ----------------------------------------
|
||||
set LINE_NUM=0
|
||||
for /f "delims=" %%a in (!SELECTED_FILE!) do (
|
||||
set /a LINE_NUM+=1
|
||||
echo [!LINE_NUM!] %%a
|
||||
)
|
||||
echo ----------------------------------------
|
||||
echo Total lines: %LINE_NUM%
|
||||
echo.
|
||||
|
||||
if %LINE_NUM%==0 (
|
||||
echo File is empty - nothing to delete
|
||||
pause
|
||||
goto FILE_MENU
|
||||
)
|
||||
|
||||
set /p DEL_LINE="Enter line number to delete (0 to cancel): "
|
||||
|
||||
if "%DEL_LINE%"=="0" goto FILE_MENU
|
||||
|
||||
REM Validate input
|
||||
set "VALID=0"
|
||||
for /l %%i in (1,1,%LINE_NUM%) do (
|
||||
if "%DEL_LINE%"=="%%i" set "VALID=1"
|
||||
)
|
||||
|
||||
if "%VALID%"=="0" (
|
||||
echo Invalid line number!
|
||||
pause
|
||||
goto FILE_MENU
|
||||
)
|
||||
|
||||
echo.
|
||||
set /p BACKUP="Create backup before deletion? (Y/N): "
|
||||
|
||||
if /i "%BACKUP%"=="Y" (
|
||||
copy "!SELECTED_FILE!" "!SELECTED_FILE!.backup" >nul 2>&1
|
||||
echo Backup created: !SELECTED_NAME!.backup
|
||||
)
|
||||
|
||||
echo Deleting line %DEL_LINE%...
|
||||
|
||||
REM Create new file without the specified line
|
||||
set CURRENT_LINE=0
|
||||
(for /f "delims=" %%a in (!SELECTED_FILE!) do (
|
||||
set /a CURRENT_LINE+=1
|
||||
if not !CURRENT_LINE!==%DEL_LINE% echo %%a
|
||||
)) > "!SELECTED_FILE!.tmp"
|
||||
|
||||
move /y "!SELECTED_FILE!.tmp" "!SELECTED_FILE!" >nul
|
||||
|
||||
echo.
|
||||
echo [OK] Line %DEL_LINE% deleted successfully!
|
||||
echo.
|
||||
pause
|
||||
goto FILE_MENU
|
||||
|
||||
:DELETE_FILE
|
||||
cls
|
||||
echo ========================================
|
||||
echo Delete !SELECTED_NAME! File
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
echo WARNING: This will delete the entire !SELECTED_NAME! file!
|
||||
echo.
|
||||
set /p CONFIRM="Are you sure? (Y/N): "
|
||||
|
||||
if /i not "%CONFIRM%"=="Y" (
|
||||
echo Operation cancelled.
|
||||
pause
|
||||
goto FILE_MENU
|
||||
)
|
||||
|
||||
echo.
|
||||
set /p BACKUP="Create backup before deletion? (Y/N): "
|
||||
|
||||
if /i "%BACKUP%"=="Y" (
|
||||
copy "!SELECTED_FILE!" "!SELECTED_FILE!.backup" >nul 2>&1
|
||||
echo Backup created: !SELECTED_NAME!.backup
|
||||
)
|
||||
|
||||
del /f "!SELECTED_FILE!" >nul 2>&1
|
||||
|
||||
echo.
|
||||
echo [OK] !SELECTED_NAME! file deleted!
|
||||
echo.
|
||||
pause
|
||||
goto MENU
|
||||
|
||||
:EXIT
|
||||
cls
|
||||
echo Exiting...
|
||||
timeout /t 1 /nobreak >nul
|
||||
exit
|
||||
Reference in New Issue
Block a user