章节 ▾ 第二版

4.3 服务器上的 Git - 生成你的 SSH 公钥

生成你的 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 软件包提供,并随 Git for Windows 一起提供。

$ ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

首先,它会确认你希望将密钥保存在哪里 (.ssh/id_rsa),然后会两次询问密码短语,如果你在使用密钥时不想输入密码,可以将其留空。但是,如果你确实使用密码,请务必添加 -o 选项;它会将私钥保存为一种比默认格式更抗暴力破解的格式。你还可以使用 ssh-agent 工具来避免每次都输入密码。

现在,每个执行此操作的用户都必须将他们的公钥发送给你或 Git 服务器的管理员(假设你使用的是需要公钥的 SSH 服务器设置)。他们所要做的就是复制 .pub 文件的内容并将其通过电子邮件发送。公钥看起来像这样:

$ 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== schacon@mylaptop.local

有关在多个操作系统上创建 SSH 密钥的更深入教程,请参阅 GitHub 上的 SSH 密钥指南:https://githubdocs.cn/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

scroll-to-top