赞
赏
许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。
首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh
目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:
$ cd ~/.ssh
$ ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
我们需要寻找一对以 id_dsa
或 id_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