My goal is to pull a Private Github Repository to Jenkins.
Here are some backgrounds:
- MacOS
 - Jenkins hosted locally, 
localhost:8080 - Installed Git plugin and Github plugin in Jenkins.
 - If I turn the repository to Public, everything is good in Jenkins.
 - From commandline, I can do "git clone" that private repo with the same credentials I used in Jenkins.
 
But when I turn it to Private and use it as the Source for Jenkins, it's broken.
The errors are:
Building in workspace /Users/Shared/Jenkins/Home/jobs/TestFramework/workspace
     > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
    Fetching changes from the remote Git repository
     > /usr/bin/git config remote.origin.url https://github.com/XXXXXXX/testframework.git # timeout=10
    Fetching upstream changes from https://github.com/XXXXXXX/testframework.git
     > /usr/bin/git --version # timeout=10
    using GIT_ASKPASS to set credentials 
     > /usr/bin/git fetch --tags --progress https://github.com/XXXXXXX/testframework.git +refs/heads/*:refs/remotes/origin/* # timeout=5
    ERROR: Timeout after 5 minutes
    ERROR: Error fetching remote repo 'origin'
    hudson.plugins.git.GitException: Failed to fetch from https://github.com/XXXXXXX/testframework.git
        at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:806)
        at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1070)
        at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1101)
        at hudson.scm.SCM.checkout(SCM.java:496)
        at hudson.model.AbstractProject.checkout(AbstractProject.java:1278)
        at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604)
        at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
        at hudson.model.Run.execute(Run.java:1728)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
        at hudson.model.ResourceController.execute(ResourceController.java:98)
        at hudson.model.Executor.run(Executor.java:405)
    Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git fetch --tags --progress https://github.com/XXXXXXX/testframework.git +refs/heads/*:refs/remotes/origin/*" returned status code 143:
I tried a few suggestions online:
- ssh-keygen to /Users/shared/jenkins/.ssh/id_rsa
 - ssh-keygen to /Users/jason/.ssh/id_rsa
 - Add both corresponding "id_rsa.pub" to private repository "Settings" => "Deploy keys".
 
But still not working.