Я написал скрипт для отправки оповещения по электронной почте, когда пользователь входит в систему через SSH. Он запускается через ForceCommand. Это отлично работает при открытии окон терминала, но SFTP не работает (журнал Bitvise сообщает "SFTP channel opening", но окно 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
Спасибо!