从github上获取的,自己整理了下,以备后用。
Generating an SSH key
SSH keys are a way to identify trusted computers without involving passwords. You can generate an SSH key and add the public key to your GitHub account by following the procedures outlined in this section.
We recommend that you regularly review your SSH keys list and revoke any that haven’t been used in a while.
Tip: If you have GitHub for Windows installed, you can use it to clone repositories and not deal with SSH keys. It also comes with the Git Bash tool, which is the preferred way of running git
commands on Windows.
Checking for existing SSH keys
Before you generate an SSH key, you can check to see if you have any existing SSH keys.
Generating a new SSH key and adding it to the ssh-agent
After you’ve checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.
Adding a new SSH key to your GitHub account
To configure your GitHub account to use your new (or existing) SSH key, you’ll also need to add it to your GitHub account.
Testing your SSH connection
After you’ve set up your SSH key and added it to your GitHub account, you can test your connection.
Checking for existing SSH keys
Before you generate an SSH key, you can check to see if you have any existing SSH keys.
-
Open Git Bash.
-
Enter
ls -al ~/.ssh
to see if existing SSH keys are present:ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist -
Check the directory listing to see if you already have a public SSH key.
By default, the filenames of the public keys are one of the following:
- id_dsa.pub
- id_ecdsa.pub
- id_ed25519.pub
-
id_rsa.pub
-
If you don’t have an existing public and private key pair, or don’t wish to use any that are available to connect to GitHub, then generate a new SSH key.
- If you see an existing public and private key pair listed (for example id_rsa.pub and id_rsa) that you would like to use to connect to GitHub, you can add your SSH key to the ssh-agent.
Tip: If you receive an error that ~/.ssh doesn’t exist, don’t worry! We’ll create it when we generate a new SSH key.
Generating a new SSH key and adding it to the ssh-agent
After you’ve checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.
Generating a new SSH key
-
Open Git Bash.
-
Paste the text below, substituting in your GitHub email address.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair. -
When you’re prompted to “Enter a file in which to save the key,” press Enter. This accepts the default file location.
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
-
At the prompt, type a secure passphrase. For more information, see “Working with SSH key passphrases”.
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
Adding your SSH key to the ssh-agent
Before adding a new SSH key to the ssh-agent, you should have checked for existing SSH keys and generated a new SSH key.
If you have GitHub for Windows installed, you can use it to clone repositories and not deal with SSH keys. It also comes with the Git Bash tool, which is the preferred way of running git
commands on Windows.
-
Ensure ssh-agent is enabled:
-
If you are using Git Bash, turn on ssh-agent:
# start the ssh-agent in the background
eval "$(ssh-agent -s)"
Agent pid 59566 -
If you are using another terminal prompt, such as Git for Windows, turn on ssh-agent:
# start the ssh-agent in the background
eval $(ssh-agent -s)
Agent pid 59566
-
-
Add your SSH key to the ssh-agent. If you used an existing SSH key rather than generating a new SSH key, you’ll need to replace id_rsa in the command with the name of your existing private key file.
$ ssh-add ~/.ssh/id_rsa
Adding a new SSH key to your GitHub account
To configure your GitHub account to use your new (or existing) SSH key, you’ll also need to add it to your GitHub account.
Before adding a new SSH key to your GitHub account, you should have:
-
Copy the SSH key to your clipboard.
If your SSH key file has a different name than the example code, modify the filename to match your current setup. When copying your key, don’t add any newlines or whitespace.
$ clip < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboardTip: If
clip
isn’t working, you can locate the hidden.ssh
folder, open the file in your favorite text editor, and copy it to your clipboard. -
In the top right corner of any page, click your profile photo, then click Settings.
- In the “Title” field, add a descriptive label for the new key. For example, if you’re using a personal Mac, you might call this key “Personal MacBook Air”.
- Paste your key into the “Key” field.
- Click Add SSH key.
- If prompted, confirm your GitHub password.
Testing your SSH connection
After you’ve set up your SSH key and added it to your GitHub account, you can test your connection.
Before testing your SSH connection, you should have:
When you test your connection, you’ll need to authenticate this action using your password, which is the SSH key passphrase you created earlier. For more information on working with SSH key passphrases, see “Working with SSH key passphrases”.
-
Open Git Bash.
-
Enter the following:
ssh -T git@github.com
# Attempts to ssh to GitHubYou may see one of these warnings:
The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?Note: The example above lists the GitHub IP address as 192.30.252.1. When pinging GitHub, you may see a range of IP addresses. For more information, see “What IP addresses does GitHub use that I should whitelist?”
-
Verify that the fingerprint in the message you see matches the following message, then type
yes
:Hi username! You've successfully authenticated, but GitHub does not
provide shell access. -
Verify that the resulting message contains your username. If you see a message that contains “access denied,” see “Error: Permission denied (publickey)”.
If you receive a message about “access denied,” you can read these instructions for diagnosing the issue.
-
If you’re switching from HTTPS to SSH, you’ll need to update your remote repository URLs.