linuxsshcontinuous-integrationdebiantravis-ci

travis-ci - ssh-add asking for my passphrase


I am working on a continuous integration with Travis CI. This is my configuration:

before_install:
  - echo -e "Host *\n\tStrictHostKeyChecking no\n" > ~/.ssh/config
  - echo -e $id_rsa.pub > ~/.ssh/id_rsa.pub
  - echo -e $id_rsa > ~/.ssh/id_rsa
  - sudo chmod 600 ~/.ssh/*
  - sudo chmod 644 ~/.ssh/config
  - eval `ssh-agent -s`
  - ssh-add ~/.ssh/id_rsa
  ...

$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/travis/.ssh/id_rsa: 

On the ssh-add step, it ask me the passphrase and it's stop the deployment. I have tested with an other ssh key without passphrase but it don't fix my issue.

I have tested lot of solution like yes $MY_PASSWORD | ssh-add ~/.ssh/id_rsa or echo "$MY_PASSWORD" | ssh-add ~/.ssh/id_rsa but it don't works.

I have added to my .ssh/config (you can see it in my config):

Host *
    StrictHostKeyChecking no

isn't it supposed to make it don't ask me the passphrase ?

Maybe someone have an idea ? Thanks :)


Solution

  • You are using encrypted private key (which is good), but it needs the passphrase (which is bad for scripting). There are several possibilities you can proceed: