SFTP wird nicht gestartet, wenn ein benutzerdefiniertes Skript über ForceCommand auf Win32 SSH verwendet wird

SFTP wird nicht gestartet, wenn ein benutzerdefiniertes Skript über ForceCommand auf Win32 SSH verwendet wird

Ich habe ein Skript geschrieben, um eine E-Mail-Benachrichtigung zu senden, wenn sich ein Benutzer über SSH anmeldet. Es wird durch ForceCommand ausgelöst. Dies funktioniert einwandfrei, wenn Terminalfenster geöffnet werden, aber SFTP funktioniert nicht (das Bitvise-Protokoll sagt „SFTP-Kanal geöffnet“, aber es wird kein SFTP-Fenster angezeigt). Übersehe ich etwas in der Skriptdatei?

Von sshd_config:

#Run command at login
ForceCommand c:\ProgramData\ssh\login.bat

Hier ist das Skript (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

Danke schön!

verwandte Informationen