zoukankan      html  css  js  c++  java
  • 使用Docker容器运行Jenkins自动化部署工具时,git获取源代码报错:Failed to connect to repository : Command "git ls-remote -h -- ssh:// HEAD" returned status code 128: stdout: stderr: Permission denied, please try again

    环境:

    git服务器是自建的,使用ssh协议获取源代码

    jenkins使用docker镜像运行

    原因:jenkins docker镜像启动时,一般会加-u root参数,以root用户启动,但主目录仍是/var/jenkins_home
    解决:使用docker exec -it ea4a9e93ce1d bash进入容器,在jenkins容器中用root用户创建ssh密钥,然后拷贝到/var/jenkins_home目录;最后使用ssh-copy-id将key拷贝到远程部署主机
    详细步骤:
    在容器里:
    root用户sshgen生成key
    .ssh文件夹copy 到/var/jenkins_home
    ssh user@host 登录远程主机,首次登录需要选择yes
    key copy到部署宿主机目录

    命令:docker exec -it ea4a9e93ce1d bash  进入容器

    ssh-keygen -t rsa -b 4096 -C "jenkins_user@myPC"  生成密钥
    cp -rf /root/.ssh /var/jenkins_home/
    ssh -p  22 regit@IP_ADDR  IP_ADDR为git服务器地址
    ssh-copy-id -p 22 git-user1@IP_ADDR
    ssh -p 22 regit@P_ADDR

  • 相关阅读:
    JS中的this
    函数作用域
    全局作用域与变量的声明提前
    立即执行函数与For. . .in语句
    实参可以是任何值
    函数的参数和返回值
    JavaScript创建函数的三种方式
    JavaScript属性名和属性值
    十进制浮点数转换为二进制
    冰雹猜想或角谷定理
  • 原文地址:https://www.cnblogs.com/andy65007/p/14810214.html
Copyright © 2011-2022 走看看