title: Gitlab CI - SSH Permission denied (publickey,password)
body: <p>I've been trying to setup CD for my project. My Gitlab CI runner and my project will be on same server. I've followed <a href="https://docs.gitlab.com/ee/ci/examples/deployment/composer-npm-deploy.html" rel="noreferrer">https://docs.gitlab.com/ee/ci/examples/deployment/composer-npm-deploy.html</a> but I keep getting <code>SSH Permission denied (publickey,password).</code> error. All my variables, private key and other variables set correctly in project settings.</p>
  
  <p>I've created my ssh key with <code>ssh-keygen -t rsa -C "my.email@example.com" -b 4096</code> command with no passphrase and set my <code>PRODUCTION_PRIVATE_KEY</code> variable with content of <code>~/.ssh/id_rsa</code> file.</p>
  
  <p>This is my <code>gitlab-ci.yml</code>:</p>
  
  <pre><code>stages:
    - deploy
  
  deploy_production:
    stage: deploy
    image: tetraweb/php
    before_script:
      - 'which ssh-agent || ( apt-get update -y &amp;&amp; apt-get install openssh-client -y )'
      - eval $(ssh-agent -s)
      - ssh-add &lt;(echo "$PRODUCTION_PRIVATE_KEY")
      - mkdir -p ~/.ssh
      - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" &gt; ~/.ssh/config
      - apt-get install rsync
    script:
      - ssh $PRODUCTION_SERVER_USER@$PRODUCTION_SERVER
      - hostname
    only:
      - master
  </code></pre>
  
  <p>And this is output from Gitlab CI runner:</p>
  
  <pre><code>Running with gitlab-ci-multi-runner 9.2.0 (adfc387)
    on ci-test (1eada8d0)
  Using Docker executor with image tetraweb/php ...
  Using docker image sha256:17692e06e6d33d8a421441bbe9adfda5b65c94831c6e64d7e69197e0b51833f8 for predefined container...
  Pulling docker image tetraweb/php ...
  Using docker image tetraweb/php ID=sha256:474f639dc349f36716fb98b193e6bae771f048cecc9320a270123ac2966b98c6 for build container...
  Running on runner-1eada8d0-project-3287351-concurrent-0 via lamp-512mb-ams2-01...
  Fetching changes...
  HEAD is now at dfdb499 Update .gitlab-ci.yml
  Checking out dfdb4992 as master...
  Skipping Git submodules setup
  $ which ssh-agent || ( apt-get update -y &amp;&amp; apt-get install openssh-client -y )
  /usr/bin/ssh-agent
  $ eval $(ssh-agent -s)
  Agent pid 12
  $ ssh-add &lt;(echo "$PRODUCTION_PRIVATE_KEY")
  Identity added: /dev/fd/63 (rsa w/o comment)
  $ mkdir -p ~/.ssh
  $ echo -e "Host *\n\tStrictHostKeyChecking no\n\n" &gt; ~/.ssh/config
  $ apt-get install rsync
  Reading package lists...
  Building dependency tree...
  Reading state information...
  rsync is already the newest version.
  0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  $ ssh $PRODUCTION_SERVER_USER@$PRODUCTION_SERVER
  Pseudo-terminal will not be allocated because stdin is not a terminal.
  Warning: Permanently added '{MY_SERVER_IP}' (ECDSA) to the list of known hosts.
  Permission denied, please try again.
  Permission denied, please try again.
  Permission denied (publickey,password).
  ERROR: Job failed: exit code 1
  </code></pre>
  
  <p>Thanks in advance.</p>