Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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
Jenkins在Windows上出现Git[权限被拒绝(公钥)]问题_Windows_Git_Jenkins_Ssh_Bitbucket - Fatal编程技术网

Jenkins在Windows上出现Git[权限被拒绝(公钥)]问题

Jenkins在Windows上出现Git[权限被拒绝(公钥)]问题,windows,git,jenkins,ssh,bitbucket,Windows,Git,Jenkins,Ssh,Bitbucket,我知道有数千个话题触及到我的问题,但几天来我一直在与之斗争,几乎没有任何进展;( 我在Windows计算机上安装了Jenkins。 然后获得Git插件和Git本身。 一切都是我写作当天的最新版本。 我很高兴开始和Jenkins一起玩,但我无法配置我的Bitbucket存储库供Job使用 我设置了git.exe的确切路径(这似乎是初始问题的原因)[C:\Program Files\git\cmd\git.exe] 然后我尝试使用帐户凭据通过HTTPS访问存储库,这里有许多奇怪的错误,所以我想让我们

我知道有数千个话题触及到我的问题,但几天来我一直在与之斗争,几乎没有任何进展;(

我在Windows计算机上安装了Jenkins。
然后获得Git插件和Git本身。
一切都是我写作当天的最新版本。
我很高兴开始和Jenkins一起玩,但我无法配置我的Bitbucket存储库供Job使用

我设置了git.exe的确切路径(这似乎是初始问题的原因)[C:\Program Files\git\cmd\git.exe]

然后我尝试使用帐户凭据通过HTTPS访问存储库,这里有许多奇怪的错误,所以我想让我们试试SSH

我已经生成了rsa密钥,在Bitbucket存储库中设置了公钥。然后我在Jenkins中创建了凭据配置,用于使用密码短语进行SSH身份验证。
我这里有很多问题,所以对于临时解决方案,我显式设置私钥的值。
最后我来到了我现在的地方:

+refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
当我尝试手动复制存储库时,它会礼貌地询问我有关密码短语的问题,然后复制就完成了。当Jenkins作业执行此操作时,会发生上述情况。在作业脚本中%USERNAME%和%USERDOMAIN%的帮助下,我会得到与手动操作相同的值

很多小时后,我可以说我不能在詹金斯使用Git(

更新

我不相信它会这么简单。正如mainframer提到的,我将整个SSH身份验证的密码短语留空,它真的起了作用(即使Jenkins在job的配置页面中仍然显示相同的错误,存储库也被克隆了).我只想知道这样的设置会带来什么后果,但现在工作对我来说更有价值了

您的意思是在生成密钥时保留空密码短语,然后在Jenkins ssh凭据中也没有密码短语配置

是的,因为Jenkins无法将密码短语提供给ssh会话


但请确保Jenkins从属服务使用您的帐户(而不是系统帐户)运行。它需要您的帐户在
%USERPROFILE%\.ssh\id\u rsa(.pub)中查找ssh密钥

我认为您应该使用不带密码的SSH身份验证,因为jenkins以非交互模式与git通信。@mainframer您的意思是在生成密钥时保留空密码,然后在jenkins SSH凭据中也没有密码配置?实际上jenkins似乎使用了正确的帐户,但我仍然被迫输入kJenkins配置中的ey或至少是它的精确路径。可能job返回的用户不是Jenkins使用的实际用户?@DawidKomorowski您输入了私钥路径(
id\u rsa
)还是公共密钥路径?它应该引用私钥。@DawidKomorowski关于作业,请查看您的Jenkins从属服务(或者,如果主设备和从设备相同),看看Jenkins本身是如何启动的。是的,我瞄准了私有节点,但我需要明确指定它。在%USERPROFILE%\.ssh\中找不到它,但它在那里。在配置方面,我只有一个节点是主节点,所以我假设从节点和主节点是相同的。或者我应该以不同的方式检查它吗?@DawidKomorowski不,只要
java-war jenkins.war
是用您的帐户启动的,这很好。