生成 SSH 公钥
许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。 首先,你需要确认自己是否已经拥有密钥(默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下)。
快速确认自己是否已拥有密钥
$ cd ~/.ssh
$ ls
如果已经拥有密钥输入ls后将输出如下内容
id_rsa id_rsa.pub known_hosts
如果尚未拥有密钥则输出
known_hosts
运行 ssh-keygen 程序来创建密钥(在 Linux/Mac 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中)
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/mnt/localdata/localhome/your name/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /mnt/localdata/localhome/your name/.ssh/id_rsa.
Your public key has been saved in /mnt/localdata/localhome/your name/.ssh/id_rsa.pub.
The key fingerprint is:
28:55:19:9b:b0:5e:6f:d2:8e:66:1d:7d:d9:0c:5d:ab your name@ubuntu
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| . = . |
|. + o . . . |
| . . . . . . . |
|. .. o S = . |
|. . oo . o E |
| . ..+. . |
| o=. |
| o. . |
+-----------------+
ssh-keygen 会确认密钥的存储位置(默认是 .ssh/id_rsa),然后它会要求你输入两次密钥口令。如果你不想在使用密钥时输入口令,接按Enter即可。
进行了上述操作后需要将各自的公钥发送给 Git 服务器管理员(假设服务器正在使用基于公钥的 SSH 验证设置)。 那么要做的就是复制各自的 .pub 文件内容,添加到Git服务器上。
查看id_rsa.pub内容:
cat ~/.ssh/id_rsa.pub
//复制以下部分
ssh-rsa
BBBBBB3Nz...........mraGFq9fum0iEzN
your name@ubuntu
然后将上面的SSH.Key添加到服务器User Setting —> SHH Keys中