Cygwin:如何将sshd服务切换至另一个域用户
更换Cygwin sshd服务运行域账户的实操步骤
我之前在管理Windows服务器上的Cygwin sshd时,刚好碰到过一模一样的需求——把开发环境的服务运行账户从共享域账户切换到专属账户,下面是我亲测有效的步骤,你可以照着来:
第一步:停止当前运行的sshd服务
先打开管理员权限的命令提示符,执行命令停止服务:net stop sshd也可以直接打开
services.msc,找到sshd服务右键选择“停止”,两种方式都可行。第二步:准备新域账户的权限配置
确保你的新域账户my_domain\cyg_dev(替换成你实际要切换的账户名)已创建完成,然后完成两个关键配置:- 给该账户分配Cygwin安装目录(比如
C:\cygwin64)的完全控制权限,记得勾选“包括可继承的权限”和“替换所有子对象权限”; - 打开本地安全策略(
secpol.msc),找到「本地策略」→「用户权限分配」→「作为服务登录」,把这个新域账户添加进去,这是服务正常运行的必要权限。
- 给该账户分配Cygwin安装目录(比如
第三步:重新配置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之后做两个验证确保配置成功:
- 打开
services.msc,找到sshd服务,切换到「登录」标签页,确认运行账户是你设置的新域账户; - 用另一台机器测试ssh连接开发机,确保能正常登录,且操作权限符合预期。
- 打开
如果过程中遇到服务启动失败的情况,可以查看Cygwin的日志文件/var/log/sshd.log,里面会有详细的错误信息,大概率是权限配置的问题,照着日志调整即可。
内容的提问来源于stack exchange,提问作者roc97007
相关产品推荐
相关产品推荐

