name: "ssh & rsync setup" inputs: SSH_KNOWN_HOSTS: required: true description: "Known hosts file to use" DEPLOY_HOST: required: true description: "hostname" SSH_PRIVATE_KEY: required: true description: "SSH private key" runs: using: "composite" steps: - run: 'which rsync || ( apt update -y && apt install rsync -y )' - run: 'which ssh-agent || ( apt update -y && apt install openssh-client -y)' - run: eval $(ssh-agent -s) - run: mkdir -p ~/.ssh - run: chmod 700 ~/.ssh - run: echo "$SSH_PRIVATE_KEY" | tr -d '\r' >> ~/.ssh/key_firq - run: chmod 600 ~/.ssh/key_firq - run: echo "Host $DEPLOY_HOST" >> ~/.ssh/config - run: echo $'\n\tIdentityFile ~/.ssh/key_firq' >> ~/.ssh/config - run: echo $'\n\tStrictHostKeyChecking no\n\tIdentitiesOnly yes\n' >> ~/.ssh/config - run: chmod 644 ~/.ssh/config - run: echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - run: chmod 644 ~/.ssh/known_hosts