jenkins-cli 未使用提供的 ssh 私钥进行身份验证

标签 jenkins jenkins-cli

[帮助]

问题描述 jenkins-cli 未使用提供的 ssh 私钥进行身份验证

观察

传递 jenkins-cli 命令时:

java -jar ~/jenkins-cli.jar -s http://localhost:8080 -i ~/.ssh/ccdevops who-am-i

控制台输出为:

Authenticated as: anonymous

Authorities:

期望

Jenkins 应使用其个人资料中匹配的公钥进行用户身份验证

相关信息

  • jenkins v 2.46.3 并使用该版本的正确 cli jar
  • Ubuntu 16.04.2 LTS(GNU/Linux 4.4.0-78-generic x86_64)
  • 仅使用推荐插件
  • 在华东数据中心的蔚蓝云上运行
  • 虚拟机的 Azure 网络安全组配置为允许流量
  • 使用的 ssh key 是在运行 jenkins 的 ubuntu 机器上创建的,公钥位于 jenkins 用户数据库的用户条目中
  • key 是根据 github 网站上的说明创建的
  • jenkins-cli 正在服务器上运行,而不是从远程主机运行

已尝试的步骤

  • 尝试了带或不带密码短语的不同 key
  • 尝试使用 localhost 和 IP 地址获取网址
  • 尝试了其他 jenkins-cli 命令,结果相同
  • 尝试创建其他用户并将公共(public) ssh key 放入其个人资料中。 (用户之间没有重复的 key )
  • 尝试将 jenkins-cli jar 的位置从服务器根目录移动到 jenkins 主目录

最佳答案

您还应该在命令行上分别使用 -ssh-user USER_NAME 指定 SSH 方法和用户。之后,您的命令将如下所示:

java -jar ~/jenkins-cli.jar -s http://localhost:8080 -i ~/.ssh/ccdevops who-am-i -ssh -user USER_NAME

另请注意,您还需要能够通过 SSH 访问服务器。

关于jenkins-cli 未使用提供的 ssh 私钥进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44459364/

相关文章:

android - 我如何将参数从 Jenkins 传递到 build.gradle?

unit-testing - 运行所有 zend framework2 单元测试

ssh - 如何为 Jenkins CLI 获取正确格式的 key 文件?

jenkins - 通过 Jenkins CI 工具执行 AUTO IT EXE

Jenkins(非管理员)用户密码重置/用户名更改

git - Jenkins CI/CD - 将 Jenkinsfile 保存在我想要构建的单独存储库中

java - 如何使依赖于某个 jar 的 Jenkins 构建失败

maven - 限制在 SNAPSHOT 依赖项上触发哪些下游构建

jenkins - 如何使用 Jenkins 服务器检查禁用的作业?