Tengo un entorno Gitlab con Gitlab CI, para un nuevo proyecto para testificar sobre los archivos compilados y copiarlos a través de rsync a un servidor de producción.
La máquina donde la compilación de estos recursos es exec es una imagen de docker (nodo 6), pero ahora tengo que copiar los archivos resultantes de ese comando Docker del contenedor al servidor usando Linux ... Mi problema es conectarme a través de ssh a través de rsync.
Actualmente tengo lo siguiente:
stages:
  - deploy
before_script:
    - npm i
    - npm run build
job_deploy:
  stage: deploy
  script:
    - ssh-keygen -t rsa -b 4096 -C '' -f ~/.ssh/deploy_rsa
    - ssh-keyscan -H 8.8.8.8 >> ~/.ssh/known_hosts
    - ssh-copy-id -i ~/.ssh/deploy_rsa.pub [email protected]
    - rsync -avuz $CI_PROJECT_DIR/dist/ [email protected]:/var/wwww/example.com
  only:
    - master
Por esto estoy obteniendo:
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    Permission denied, please try again.
    Permission denied, please try again.
    Permission denied (publickey,password).
                
                    
                        ssh
                                deployment
                                gitlab
                                continuous-integration
                                
                    
                    
                        Rodrigo Moreno
fuente
                
                fuente

Respuestas:
ssh-copy-id está pidiendo una contraseña. Puede usar
sshpass -ey establecer la variable de entorno SSHPASS en Gitlab.fuente
No está pasando la clave ssh a rsync. Debería hacer algo como esto que ejecuta el comando ssh para identificar correctamente la clave ssh:
fuente