Question: Is there a way to generate a certificate or such so that my prod server can pull from my github repo without me authenticating every single time?

Answer: 
You can [create an access token](https://help.github.com/articles/creating-an-access-token-for-command-line-use) and use it as username (without password).

Once you have your access token clone the repository:

```
git clone https://<your-access-token>@github.com/username/repo.git

```

Then you can pull without authenticating every single time.

This is the simplest method but will store the token plain text into .git/config To improve security you can [setup password caching](https://help.github.com/en/github/using-git/caching-your-github-password-in-git) and clone as usual https:

```
git clone https://github.com/username/repo.git

```

If you want remove access of server to repository, just delete the access token in your [application settings](https://github.com/settings/applications).

I also prefer to use https than ssh on deploy environments. Some times we don't have enough access privileges to handle with ssh, but https access to github is available even on cheaper hosting services.
I think this can be done by using credential caching and using the .netrc file. 
[Please Check This](https://confluence.atlassian.com/display/STASH/Permanently+authenticating+with+Git+repositories)