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

Cygwin:如何将sshd服务切换至另一个域用户

更换Cygwin sshd服务运行域账户的实操步骤

我之前在管理Windows服务器上的Cygwin sshd时,刚好碰到过一模一样的需求——把开发环境的服务运行账户从共享域账户切换到专属账户,下面是我亲测有效的步骤,你可以照着来:

  • 第一步:停止当前运行的sshd服务
    先打开管理员权限的命令提示符,执行命令停止服务:

    net stop sshd
    

    也可以直接打开services.msc,找到sshd服务右键选择“停止”,两种方式都可行。

  • 第二步:准备新域账户的权限配置
    确保你的新域账户my_domain\cyg_dev(替换成你实际要切换的账户名)已创建完成,然后完成两个关键配置:

    1. 给该账户分配Cygwin安装目录(比如C:\cygwin64)的完全控制权限,记得勾选“包括可继承的权限”和“替换所有子对象权限”;
    2. 打开本地安全策略(secpol.msc),找到「本地策略」→「用户权限分配」→「作为服务登录」,把这个新域账户添加进去,这是服务正常运行的必要权限。
  • 第三步:重新配置sshd服务的运行账户
    打开管理员权限的Cygwin终端,执行配置命令:

    ssh-host-config
    

    跟着提示一步步操作:

    • 问到Do you want to install sshd as a service?,输入yes回车;
    • 问到Enter the value of CYGWIN for the daemon:,直接回车用默认配置即可;
    • 问到Do you want to use a different user name?,输入yes回车;
    • 接下来提示Enter the user name:,输入你的新域账户my_domain\cyg_dev;
    • 输入该账户的域密码,确认密码后回车;
      等待命令执行完成,它会自动帮你配置好服务的运行账户。
  • 第四步:修复关键目录权限(必做)
    Cygwin的sshd要求/var/empty目录权限严格为700,且属主是运行账户,所以在Cygwin终端执行:

    chown my_domain\\cyg_dev /var/empty
    chmod 700 /var/empty
    

    注意账户名里的反斜杠要转义,所以是两个\\。

  • 第五步:启动服务并验证
    回到管理员命令提示符,启动服务:

    net start sshd
    

    之后做两个验证确保配置成功:

    1. 打开services.msc,找到sshd服务,切换到「登录」标签页,确认运行账户是你设置的新域账户;
    2. 用另一台机器测试ssh连接开发机,确保能正常登录,且操作权限符合预期。

如果过程中遇到服务启动失败的情况,可以查看Cygwin的日志文件/var/log/sshd.log,里面会有详细的错误信息,大概率是权限配置的问题,照着日志调整即可。

内容的提问来源于stack exchange,提问作者roc97007

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:24:10