将Jenkins连接到AWS CodeCommit Repo

时间:2016-02-24 11:59:55

标签: git amazon-web-services jenkins ssh aws-codecommit

我已部署了本地Jenkins服务器(Windows主机),并尝试连接到Amazon的AWS CodeCommit服务中的repo。 我已使用AWS Access Key和Secre Key在Jenkins中配置了AWS CodeDeploy凭证(通过AWS CodeDeploy插件)。

我创建了一个新的自由式项目,并在源代码管理下选择了Git并进行了配置: 存储库URL - 从AWS Code Commit控制台复制SSH URL 凭证 - 我创建了一个全局凭证并将其指向我的私钥,并输入了密码。

配置Repo URL时,会显示以下错误:

  

无法连接到存储库:命令“git.exe -c core.askpass = true ls-remote -h   SSH:// [REMOVED] @ git-codecommit.us-east-1.amazonaws.com / V1 /回购/ [REMOVED] /   HEAD“返回状态码128:stdout:stderr:权限被拒绝   (公钥)。致命的:无法从远程存储库读取。

     

请确保您拥有正确的访问权限和存储库   存在。

似乎是一个简单的访问错误,但对于我的生活,我无法弄明白。如果我打开我的git bash并粘贴上面的命令,我会看到:

  

您已成功通过SSH验证。你可以使用Git   与AWS CodeCommit交互。连接到   git-codecommit.us-east-1.amazonaws.com由远程主机关闭。致命:   无法从远程存储库中读取。

     

请确保您拥有正确的访问权限和存储库   存在。

所以看来SSH连接正常。 我跑的时候:

ssh -vT [REMOVED]@git-codecommit.us-east-1.amazonaws.com

我得到以下输出:

  

您已成功通过SSH验证。你可以使用Git   与AWS CodeCommit交互。交互式shell不是   supported.debug1:channel 0:free:client-session,nchannels 1   与远程关闭的git-codecommit.us-east-1.amazonaws.com连接   主办。转移:发送4160,收到2368字节,0.2秒   每秒字节数:发送24893.3,收到14170.0 debug1:退出状态   -1

所以看来我真的可以访问Code Commit了。

我还验证了我的IAM用户可以通过附加CodeCommitFullAccess策略连接到CodeCommit。我还在运行Jenkins的Windows主机上使用git bash克隆了repo。

有没有人知道如何在不显示错误的情况下让Jenkins连接?

1 个答案:

答案 0 :(得分:1)

您在问题中提到您正在使用SSH密钥的密码。看起来这是Jenkins的一个已知问题,目前尚未解决:https://www.npmjs.com/package/contextify。我看到了Unix平台的一些变通方法,但不适用于Windows。您可以考虑为Jenkins创建一个没有密码的SSH密钥来解决此问题。