Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

gitlab-ci SSH key invalid format

I would like run deploy script with gitlab-ci, but step ssh-add $SSH_PRIVATE_KEY return an error :

echo "$SSH_PRIVATE_KEY" | ssh-add - Error loading key "(stdin)": invalid format 

You can see my .gitlab-ci.yml :

deploy:   image: node:9.11.1-alpine   stage: deploy   before_script:     # Install ssh-agent if not already installed, it is required by Docker.     # (change apt-get to yum if you use a CentOS-based image)     - 'which ssh-agent || ( apk add --update openssh )'      # Add bash     - apk add --update bash      # Add git     - apk add --update git      # Run ssh-agent (inside the build environment)     - eval $(ssh-agent -s)      # Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store     - echo "$SSH_PRIVATE_KEY"     - echo "$SSH_PRIVATE_KEY" | ssh-add -      # For Docker builds disable host key checking. Be aware that by adding that     # you are suspectible to man-in-the-middle attacks.     # WARNING: Use this only with the Docker executor, if you use it with shell     # you will overwrite your user's SSH config.     - mkdir -p ~/.ssh     - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'     # In order to properly check the server's host key, assuming you created the     # SSH_SERVER_HOSTKEYS variable previously, uncomment the following two lines     # instead.     # - mkdir -p ~/.ssh     # - '[[ -f /.dockerenv ]] && echo "$SSH_SERVER_HOSTKEYS" > ~/.ssh/known_hosts'   script:     - npm i -g pm2     - pm2 deploy ecosystem.config.js production   # only:   # - master 

On my project setting, i've been add SSH_PRIVATE_KEY variable, with the id_rsa from my production server cat ~/.ssh/id_rsa.pub.

Anyone can help me ?

like image 384
s-leg3ndz Avatar asked Aug 31 '18 06:08

s-leg3ndz


2 Answers

In my case, it was because I had made my SSH_PRIVATE_KEY variable protected. When I disabled the Protected state, it worked without any error.

enter image description here

like image 164
pandey909 Avatar answered Sep 23 '22 00:09

pandey909


In my case I had to put a new line at the end of the SSH_PRIVATE_KEY variable

like image 39
Dennis Gloss Avatar answered Sep 19 '22 00:09

Dennis Gloss