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

VirtualBox中Windows虚拟机配置GitLab Runner的SSH与Shell异常问题

解决Windows虚拟机GitLab Runner配置问题(OpenSSH+pwsh+无WSL)

一、修复pwsh作为OpenSSH默认Shell的SSH连接失败问题

  1. 修正默认Shell路径
    执行注册表命令时,避免用$PSHOME环境变量(OpenSSH服务上下文可能无法解析),直接使用pwsh的绝对路径:

    New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\PowerShell\7\pwsh.exe" -PropertyType String -Force
    

    注:若pwsh安装路径不同,可在pwsh中执行$PSHOME确认后替换

  2. 重启OpenSSH服务
    修改注册表后必须重启服务使配置生效:

    Restart-Service sshd
    
  3. 排查连接细节

    • 本地连接时直接用ssh username@localhost,无需添加机器名,避免账户解析混乱
    • 确认连接用的本地账户密码正确,且拥有虚拟机登录权限
    • 查看事件查看器(Windows日志->应用程序)中的OpenSSH日志,定位具体拒绝原因(如路径错误、权限不足)

二、解决GitLab Runner找不到bash的问题(无需WSL)

Git for Windows自带bash,只需将其路径加入系统环境变量即可:

  1. 定位Git bash路径
    通常为C:\Program Files\Git\bin\bash.exe或C:\Program Files\Git\usr\bin\bash.exe

  2. 添加到系统PATH
    打开「控制面板->系统->高级系统设置->环境变量」,在系统变量的PATH中添加bash所在的文件夹路径(如C:\Program Files\Git\bin)

  3. 验证配置

    • 在pwsh中执行bash --version,能正常输出版本信息即为配置成功
    • 重启GitLab Runner服务或虚拟机,让环境变量完全生效

三、GitLab Runner配置补充

确保config.toml中virtualbox executor的shell配置正确,示例:

[[runners]]
  name = "Windows VirtualBox Runner"
  url = "https://your-gitlab-instance.com/"
  token = "your-runner-token"
  executor = "virtualbox"
  [runners.virtualbox]
    vmname = "your-windows-vm"
    ssh_port = 22
    ssh_user = "your-username"
    ssh_password = "your-password"
  [runners.shell]
    shell = "pwsh"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:03:23