您的位置:首页 > 其它

Git 生成SSH 公钥

2017-09-18 23:01 302 查看
原文–>服务器上的 Git - 生成 SSH 公钥

作用

由于大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,因此,系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个,否则无法访问。

生成步骤

检查SSH Keys是否存在

生成新的SSH Keys

将SSH Keys添加到Git服务器中(GitHub、GitLab、Coding、Phabricator等)

生成公钥的过程在所有操作系统上都差不多(本文是针对windows)。

首先,Windows下安装Git以后,打开Git Bash,输入:ls ~/.ssh

如果不存在则会提示文件或目录不存在,如下:

ls: cannot access '/c/Users/xxx/.ssh': No such file or directory


如果存在则会显示两个文件,如下:

id_rsa  id_rsa.pub


关键是看有没有用 something 和 something.pub 来命名的一对文件,这个 something 通常就是 id_dsa 或 id_rsa。有 .pub 后缀的文件就是公钥,另一个文件则是密钥。假如没有这些文件,或者连 .ssh 目录都没有,可以用ssh-keygen 来创建,该程序在 Linux/Mac 系统上由 SSH 包提供,而在 Windows 上则包含在 MSysGit 包里:。

$ ssh-keygen -t rsa -C xxx@xxx.xxx
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa):
Created directory '/c/Users/xxx/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/xxx/.ssh/id_rsa.
Your public key has been saved in /c/Users/xxx/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xxx/xxx xxx@xxx.xxx
The key's randomart image is:
+---[RSA 2048]----+
|O&@ +.           |
|EO+B .           |
|oo+.  o .        |
| o. o  +         |
|.o.  +  S        |
|o+* *            |
|O*.* .           |
|*+o .            |
|....             |
+----[SHA256]-----+


其中,ssh-keygen -t rsa -C xxx@xxx.xxx中的xxx@xxx.xxx为需要自己的邮箱。

输入命令后,它先要求你确认保存公钥的位置(.ssh/id_rsa),然后,它会让你重复一个密码两次,如果不想在使用公钥的时候输入密码,可以留空。得到的公钥大致如下:

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== xxx@xxx.xxx


最后得到id_rsa.pub和id_rsa两个文件,其中,id_rsa.pub文件的内容即为公钥。将id_rsa.pub内容粘贴到Git服务器即可进行正常交互。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git ssh