Git ssh公钥

Git ssh公钥生成

许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。

生成Git ssh公钥详解

首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:

$ cd ~/.ssh $ ls authorized_keys2 id_dsa known_hosts config id_dsa.pub

我们需要寻找一对以 id_dsaid_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是与之对应的私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们。 在 Linux/macOS 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。

haicoder(www.haicoder.net)# ssh-keygen -o Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): Created directory '/c/Users/Administrator/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa. Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub. The key fingerprint is: SHA256:iSrAvtZtLiE/AS/GBM8LFhtiWiwTH+NZp/hrimZEsMk Administrator@PC-20190828CDFU

首先 ssh-keygen 会确认密钥的存储位置(默认是 .ssh/id_rsa),然后它会要求你输入两次密钥口令。 如果你不想在使用密钥时输入口令,将其留空即可。 然而,如果你使用了密码,那么请确保添加了 -o 选项,它会以比默认格式更能抗暴力破解的格式保存私钥。 你也可以用 ssh-agent 工具来避免每次都要输入密码。

现在,进行了上述操作的用户需要将各自的公钥发送给任意一个 Git 服务器管理员 (假设服务器正在使用基于公钥的 SSH 验证设置)。 他们所要做的就是复制各自的 .pub 文件内容,并将其通过邮件发送。 公钥看起来是这样的:

haicoder(www.haicoder.net)# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDRIRJs9dS8vPFPCjrV3JF3YQ4LTeU9Y8T7qMx+VxInPNTGGerRzkr+aBx2FplfZ0lrA532NJOvbVNCuoyQuMEKCV0Ce6/nXG/nSCGIE6mXczDrdy5BaqLv51dwc2QwX5WBRHHWz1hiQ4qJBDdUlxZHAIGPDwQNlj6TVupc5+4kpK5xEH2tXhyTCt6BUPetaaKwZfwNZW60GvlVXix3VyTk9Q1EeGP5Ue/bit5etmZhKBdf9rXGYknIP24bmcwdUYa/WRvzeimUrZiH9zbf31h1qhgGaqnOTo17F/20J7Pu7p2bPvOw5gsqgMMOldNebFEr7WJckqpZdHhiy6tEb8nOOn+UBG8iABeI2XwBlEKmKxOvA/Gbh5gtY1Ziix8VuS2ARBlU2Ilei3/KN+i6HxeJ68KQ6WHndqj03L/k87NUw1ZD3o1i2fGu+oWfs3ao0qYR3byNZ9nJM7rIqwT+PQ1YH9mzpGGCupH3fmsPQOeK6P5U1tR1U7LhyhFXnMbpaM8= Administrator@PC-20190828CDFU