Windows “如何调试”;无法添加标识:代理拒绝操作“;在窗户上?
我正在尝试使用模仿Linux构建的Windows在Gitlab CI上编写PowerShell脚本。作为第一步,我需要添加私钥,以便下载所有必需的子模块:Windows “如何调试”;无法添加标识:代理拒绝操作“;在窗户上?,windows,powershell,ssh,gitlab-ci,Windows,Powershell,Ssh,Gitlab Ci,我正在尝试使用模仿Linux构建的Windows在Gitlab CI上编写PowerShell脚本。作为第一步,我需要添加私钥,以便下载所有必需的子模块: mkdir C:\Users\$env:UserName\.ssh $key\u path=“C:\Users\$env:UserName\.ssh\id\u rsa” 回显“$DEPLOY\u PRIVATE\u KEY”>$KEY\u路径 (获取内容$key_path-Raw)。替换(`r`n',`n”)|设置内容$key_path-Fo
mkdir C:\Users\$env:UserName\.ssh
$key\u path=“C:\Users\$env:UserName\.ssh\id\u rsa”
回显“$DEPLOY\u PRIVATE\u KEY”>$KEY\u路径
(获取内容$key_path-Raw)。替换(`r`n',`n”)|设置内容$key_path-Force
设置服务-名称ssh代理-StartupType手册
启动服务ssh代理
ssh添加
然而,我得到:
Could not add identity "C:\Users\gitlab_runner/.ssh/id_rsa": agent refused operation
因为我并不真正了解Windows,所以我不知道如何实现这一点。不幸的是,ssh add的Windows镜像没有详细模式-v
。我怎样才能获得更多关于代理拒绝的信息?拒绝的原因可能是什么
干杯
编辑
根据@VonC的建议,我确保文件夹/密钥的权限不是太开放,并且我的代理确实正在运行:
$Cmd/c Icacls%UserProfile%\.ssh/c/t/heritation:d
已处理文件:C:\Users\gitlab\u runner\.ssh
已处理文件:C:\Users\gitlab\u runner\.ssh\id\u rsa
成功处理2个文件;处理0个文件失败
$Cmd/c Icacls%UserProfile%\.ssh/c/t/Grant%UserName%:F
已处理文件:C:\Users\gitlab\u runner\.ssh
已处理文件:C:\Users\gitlab\u runner\.ssh\id\u rsa
成功处理2个文件;处理0个文件失败
$Cmd/c Icacls%UserProfile%\.ssh/c/t/Remove Administrator“Authenticated Users”BUILTIN\Administrators BUILTIN Everyone系统用户
已处理文件:C:\Users\gitlab\u runner\.ssh
已处理文件:C:\Users\gitlab\u runner\.ssh\id\u rsa
成功处理2个文件;处理0个文件失败
$Get-Service-ssh-agent
状态名称显示名称
------ ---- -----------
正在运行ssh代理OpenSSH身份验证代理
从代码的角度来看,我查看了openssh repo的
ssh add.c
,如果我没有错的话,我发现错误ssh\u ERR\u AGENT\u FAILURE
在获取标识列表时抛出 以防万一,请确保刚刚创建的%USERPROFILE%\.ssh
的权限没有太大打开:请参阅以修复它
检查SSH代理服务的状态以确认它确实已启动,如中所示。是否要linux版本?
bash-c“ssh add-v”
有效吗?谢谢,我在权限更改方面遇到了一些错误。一旦我找到答案,我会回复你:)祝你有一个愉快的一天:)所以我遵循了这两个建议,不幸的是我没有设法添加密钥。为了记录,我从Icacls
中获得信息,对于每个命令,密钥(和文件夹)的处理都是成功的,Get-Service-ssh-agent
返回运行状态。可以用我执行的步骤更新我的帖子吗?@Proko-Sure:编辑你的问题以添加更多细节。