Push to GitHub without a password using ssh-key

前端 未结 6 1616
青春惊慌失措
青春惊慌失措 2020-12-12 08:59

I generated an SSH key pair without a password and added the public key to GitHub.

Connection with

user@dev:/var/www/project# ssh -T git@github.com
H         


        
相关标签:
6条回答
  • 2020-12-12 09:21

    If it is asking you for a username and password, your origin remote is pointing at the HTTPS URL rather than the SSH URL.

    Change it to ssh.

    For example, a GitHub project like Git will have an HTTPS URL:

    https://github.com/<Username>/<Project>.git
    

    And the SSH one:

    git@github.com:<Username>/<Project>.git
    

    You can do:

    git remote set-url origin git@github.com:<Username>/<Project>.git
    

    to change the URL.

    0 讨论(0)
  • 2020-12-12 09:25

    You have to use the SSH version, not HTTPS. When you clone from a repository, copy the link with the SSH version, because SSH is easy to use and solves all problems with access. You can set the access for every SSH you input into your account (like push, pull, clone, etc...)

    Here is a link, which says why we need SSH and how to use it: step by step

    Git Generate SSH Keys

    0 讨论(0)
  • 2020-12-12 09:26

    As usual, create an SSH key and paste the public key to GitHub. Add the private key to ssh-agent. (I assume this is what you have done.)

    To check everything is correct, use ssh -T git@github.com

    Next, don't forget to modify the remote point as follows:

    git remote set-url origin git@github.com:username/your-repository.git
    
    0 讨论(0)
  • 2020-12-12 09:26

    Using the command line:

    Enter ls -al ~/.ssh to see if existing SSH keys are present.

    In the terminal is shows: No directory exist

    Then generate a new SSH key

    Step 1.

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    step 2.

    Enter a file in which to save the key (/Users/you/.ssh/id_rsa): <here is file name and enter the key>
    

    step 3.

    Enter passphrase (empty for no passphrase): [Type a password]
    
    Enter same passphrase again: [Type password again]
    
    0 讨论(0)
  • 2020-12-12 09:30

    Additionally for gists, it seems you must leave out the username

    git remote set-url origin git@gist.github.com:<Project code>
    
    0 讨论(0)
  • 2020-12-12 09:38

    In case you are indeed using the SSH URL, but still are asked for username and password when git pushing:

    git remote set-url origin git@github.com:<Username>/<Project>.git
    

    You should try troubleshooting with:

    ssh -vT git@github.com
    

    Below is a piece of sample output:

    ...
    debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
    debug1: Trying private key: /c/Users/Yuci/.ssh/id_dsa
    debug1: Trying private key: /c/Users/Yuci/.ssh/id_ecdsa
    debug1: Trying private key: /c/Users/Yuci/.ssh/id_ed25519
    debug1: No more authentication methods to try.
    Permission denied (publickey).
    

    I actually have already added the public key to GitHub before, and I also have the private key locally. However, my private key is of a different name called /c/Users/Yuci/.ssh/github_rsa.

    According to the sample output, Git is trying /c/Users/Yuci/.ssh/id_rsa, which I don't have. Therefore, I could simply copy github_rsa to id_rsa in the same directory.

    cp /c/Users/Yuci/.ssh/github_rsa /c/Users/Yuci/.ssh/id_rsa
    

    Now when I run ssh -vT git@github.com again, I have:

    ...
    debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
    debug1: Authentication succeeded (publickey).
    ...
    Hi <my username>! You've successfully authenticated, but GitHub does not provide shell access.
    ...
    

    And now I can push to GitHub without being asked for username and password :-)

    0 讨论(0)
提交回复
热议问题