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: 
This is what [Deploy Keys](https://help.github.com/articles/managing-deploy-keys) are for.

That help article explains what deployment authentication methods GitHub supports and gives some pointers to help decide between them.

In my limited experience, deployment SSH keys are probably the simplest to set up.
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)