我已经部署了一个本地 Jenkins 服务器(Windows 主机),并且正在尝试连接到 Amazon 的 AWS CodeCommit 服务中的一个存储库。我已经使用我的 AWS 访问密钥和保密密钥在 Jenkins 中配置了 AWS CodeDeploy 凭证(通过 AWS CodeDeploy 插件)。
我创建了一个新的自由式项目,并在 Source Code Management 下选择了 Git 并进行了配置: Repository URL - 从 AWS Code Commit 控制台复制了 SSH url Credentials - 我创建了一个全局凭证并将其指向我的私钥,然后输入密码。
配置 Repo URL 时显示以下错误:
无法连接到存储库:命令“git.exe -c core.askpass=true ls-remote -h ssh://[REMOVED]@git-codecommit.us-east-1.amazonaws.com/v1/repos/[ REMOVED]/ HEAD" 返回状态码 128:stdout:stderr:Permission denied (publickey)。致命:无法从远程存储库中读取。
请确保您具有正确的访问权限并且存储库存在。
似乎是一个简单的访问错误,但对于我来说,我无法弄清楚。如果我打开我的 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。debug1:通道 0:免费:客户端会话,nchannels 1 与远程主机关闭的 git-codecommit.us-east-1.amazonaws.com 的连接。已传输:发送 4160,接收 2368 字节,在 0.2 秒内每秒字节数:发送 24893.3,接收 14170.0 debug1:退出状态 -1
所以看来我真的可以访问代码提交了。
我还验证了我的 IAM 用户能够通过附加 CodeCommitFullAccess 策略连接到 CodeCommit。我还在运行 Jenkins 的 Windows 主机上使用 git bash 克隆了 repo。
有谁知道我怎样才能让詹金斯连接而不显示错误?