사용자가 SSH를 통해 로그인할 때 이메일 경고를 보내는 스크립트를 작성했습니다. ForceCommand를 통해 트리거됩니다. 터미널 창을 열 때는 제대로 작동하지만 SFTP는 작동하지 않습니다(Bitvise 로그에 "SFTP 채널이 열렸습니다"라고 표시되지만 SFTP 창이 나타나지 않음). 스크립트 파일에 뭔가 빠졌나요?
sshd_config에서:
#Run command at login
ForceCommand c:\ProgramData\ssh\login.bat
다음은 스크립트(login.bat)입니다.
@echo off
REM For colored text; see :colorEcho below
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
ipconfig /all
echo:
REM Get current date and time
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
call :colorEcho a0 "User %LOGNAME% connected to %COMPUTERNAME% from %SSH_CONNECTION% at %mydate%_%mytime%"
REM Send alert that user has connected.
c:\BatchFiles\EmailMessage\EmailMessage.exe -s "New Connection to %COMPUTERNAME%" -b "User %LOGNAME% connected to %COMPUTERNAME% from %SSH_CONNECTION% at %mydate%_%mytime%"
echo:
echo:
REM Send original command from SSH so shell will start
cmd %SSH_ORIGINAL_COMMAND%
REM This provides for colored text
:colorEcho
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i
감사합니다!