Deployment permission issues with Envoy (publickey)

This is the first time I’m deploying a Laravel application by using GitLab, and I might just have some confusion regarding the process.

I followed this guide: laravel_with_gitlab_and_envoy, and everything seems to work untill deployment begins.
I can see that my files were actually uploaded to the server, but the deployment job always ends with error.

Target production server is simple shared hosting, and I have ssh-connection to there (sudo doesn’t seem to work though).

I’m a bit confused about the @server directive of Envoy.blade.php, and have already tried different credentials there. But now I’m pretty sure I should have ssh_username@production_ip there, yet the deployment ends with this error:

$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ ~/.composer/vendor/bin/envoy run deploy --commit="$CI_COMMIT_SHA"
[ssh_username@production_ip]: Cloning repository
[ssh_username@production_ip]: Cloning into 'app/releases/20200522043301'...
[ssh_username@production_ip]: Permission denied (publickey).
[ssh_username@production_ip]: fatal: Could not read from remote repository.
[ssh_username@production_ip]: Please make sure you have the correct access rights
[ssh_username@production_ip]: and the repository exists.
[✗] This task did not complete successfully on one of your servers.

And now I’m not sure which permissions I’m lacking, becouse the main app files already got uploaded. Does this mean it for some reason can’t get the release files from GitLab or something else?

Huhuh, I finally found the issue. I had to manually create .ssh/config file with the following content:

User git
IdentityFile ~/.ssh/deploy_key
TCPKeepAlive yes
IdentitiesOnly yes

And now deployment process is finally able to upload the release versions too!