You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过ForceCommand执行自定义脚本时Win32 SSH无法启动SFTP的问题求助

通过ForceCommand执行自定义脚本时Win32 SSH无法启动SFTP的问题求助

各位大佬好,我最近遇到了一个头疼的问题,想请大家帮忙看看:我写了一个脚本,用来在用户通过SSH登录时自动发送邮件告警,是通过ForceCommand来触发这个脚本的。

目前终端窗口登录时一切正常,脚本会顺利执行并发送告警邮件;但SFTP功能彻底没法用——Bitvise的日志里明明显示“SFTP channel opened”,可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>&1

麻烦各位帮忙排查下问题出在哪,谢谢大家!

备注:内容来源于stack exchange,提问作者Mark Williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:08:09