jenkins windows ssh从属无法访问映射驱动器

jenkins windows ssh从属无法访问映射驱动器

我在办公室设置了一个 jenkins,其中 jenkins(windows)使用 OpenSSH 公钥私钥身份验证通过 ssh 连接到从属服务器(windows)。我现在面临的问题是无法访问从属服务器上的映射驱动器。我在网上寻找了几种解决方案,但无法访问已映射的驱动器或将新驱动器从 jenkins 映射到从属服务器上。我尝试了 net use \shared\folder /user:domainname\user /p:yes 和 powershell 命令 New-SmbMapping -LocalPath -RemotePath -Persistent:[$true|$false] 和 New-PSDrive -Name -Root -PSProvider FileSystem -Scope [Global|Local] -Persist:[$true|$false]。当我在从属服务器上本地运行时,所有这些都工作正常,即使有挂载,我也无法通过运行我的作业从 jenkins 主服务器访问,因为我的 jenkins 管道作业和构建访问这些 n/w 共享驱动器。我尝试了所有这些命令,并通过 withCredentials 传递了用户/密码。每次我收到相同的错误消息“指定的登录会话不存在。它可能已被终止”

顺便说一句,从属服务器上的 jenkins 不是作为 Windows 服务运行的,而是在启动代理时通过 java -jar 命令运行 slave.jar。此外,域用户在任何地方都相同。当使用 ssh 上的用户/密码凭据而不是密钥启动代理时,一切正常,但我们使用密钥进行身份验证,这造成了问题。

我也尝试在作业中运行 Groovy 脚本来执行网络使用,但每次有新任务时,它都要等待批准,这对我们来说并不理想

无法找到解决方案,是否有人解决过类似的问题?

答案1

您是否尝试过指定凭证而不是使用私钥/公钥认证?

其中 jenkins (windows) 使用 OpenSSH 公私密钥认证通过 ssh 连接到从属 (windows)。

https://github.com/PowerShell/Win32-OpenSSH/wiki/SSH-remote-sessions-on-Windows#double-hop-differences-between-password-and-keybased-auth

通过基于密钥的身份验证打开的远程会话没有关联的用户凭据,因此无法以用户身份进行出站身份验证。这是设计使然,并遵守标准 Windows 安全规则。

相关内容