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

  • 相关阅读:
    HOW TO MAKE IT FLOW ?
    ansys14.0 从入门到精通
    ansys 14.0
    C++ GUI Qt4 编程 (第二版)
    零基础学QT编程
    医学成像与医学图像处理
    曾巩传
    c++ 编程调试秘笈
    matlab实用教程
    不要重复发明轮子-C++STL
  • 原文地址:https://www.cnblogs.com/andy65007/p/14810214.html
Copyright © 2011-2022 走看看