Git本身既支持http(s)又支持ssh协议,使用http(s)协议的时候每次都必须输入用户名密码,但如果使用ssh协议的时候,就需要提供公共密钥,系统中的每个用户必须生成一个,如果它们还没有一个。所有操作系统的此过程相似。首先,您应该检查以确保您还没有钥匙。默认情况下,用户的SSH密钥存储在该用户的~/.ssh目录中。
root@iZwz958ubspe5vr1d7jdeuZ:~/.ssh# ll ~/.ssh/
总用量 12
drwx------ 2 root root 4096 6月 14 02:36 ./
drwx------ 12 root root 4096 10月 9 14:47 ../
-rw------- 1 root root 0 6月 13 16:32 authorized_keys
-rw-r--r-- 1 root root 1110 9月 26 16:53 known_hosts
一、生成密钥对、
如果你没有在这个目录下没有发现id_dsa和id_rsa.pub的话证明你还没有配置秘钥,这时候你需要去生成:
live:test yuelin$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yuelin/.ssh/id_rsa):
接下来会提示你输入密码,在管理public key的时候需要用到
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/yuelin/.ssh/id_rsa.
Your public key has been saved in /Users/yuelin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fCwBJWQZ7BnRgBYssZDhU6RWPkwe/svNgMZpUnNYGyo yuelin@live.linyue.hznwce.com
The key's randomart image is:
+---[RSA 2048]----+
|oooO.BOB. |
|o.@.O.*o. |
| E.& + o. |
|. = B o. o |
| . * o S o |
| + . = o |
| o o |
| |
| |
+----[SHA256]-----+
这时候你会发现~/.ssh/文件夹下多了几个文件:
live:.ssh yuelin$ ls -ls
total 40
8 -rw------- 1 yuelin staff 1766 5 11 14:40 github_rsa
8 -rw-r--r-- 1 yuelin staff 400 5 11 14:40 github_rsa.pub
8 -rw------- 1 yuelin staff 1679 10 9 15:47 id_rsa
8 -rw-r--r-- 1 yuelin staff 411 10 9 15:47 id_rsa.pub
8 -rw-r--r-- 1 yuelin staff 1878 9 27 12:11 known_hosts
其中一对名为id_dsa或类似于或id_rsa具有.pub扩展名的匹配文件的文件。该.pub文件是您的公钥,另一个文件是您的私钥。
二、添加公钥到你的远程仓库
1、查看自己的公钥
live:.ssh yuelin$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZUw2lYMNofV1FuCeNugL/YJGGU8p+u4p0AbhJOPecPZvY0UjqtaQi9yFAYYOtZqjeNOaLoafw1L6VwqNE2YPsnNI8UYvDLn2MMhzJ2XnOgyN+bPzCvs2JaG+fZfDakUGK2GN25GC2/UE+UaEHKbL3ftACp8isTYVP3WKW6jLhGpvpeKrAgRxjrxVzbM+k4zX9u3qcN5P/o2CemQWkyctOZgCv2atU3zo7nVRNmEtIymZQg0qFkJLMWp0o88hduj+dmpYA/ogZV5h5Twj76aPKkHdBgwg88ytGe2025ZDMYgrmcSQcwkb+2Hfl5DkfsOok8bZDyrccVCKzOYqOqsRH yuelin@live.linyue.hznwce.com
2、登陆你的github帐户。点击你的头像,然后 Settings -> 左栏点击 SSH and GPG keys -> 点击 New SSH key
3、然后你复制上面的公钥内容,粘贴进“Key”文本域内。 title域,自己随便起个名字。
4、点击 Add key。

5、测试是否成功
live:.ssh yuelin$ ssh -T git@github.com
Hi linyueb! You've successfully authenticated, but GitHub does not provide shell access.
如果看到如下的英文,那么恭喜你成功了。
网友评论