Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows “如何调试”;无法添加标识:代理拒绝操作“;在窗户上?_Windows_Powershell_Ssh_Gitlab Ci - Fatal编程技术网

Windows “如何调试”;无法添加标识:代理拒绝操作“;在窗户上?

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

我正在尝试使用模仿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-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:编辑你的问题以添加更多细节。