-
1. 起步
-
2. Git 基础
-
3. Git 分支
-
4. Git 服务器
- 4.1 协议
- 4.2 在服务器上搭建 Git
- 4.3 生成你的 SSH 公钥
- 4.4 架设服务器
- 4.5 Git Daemon
- 4.6 智能 HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 第三方托管平台
- 4.10 总结
-
5. 分布式 Git
-
A1. 附录 A:Git 在其他环境中的应用
- A1.1 图形界面
- A1.2 Visual Studio 中的 Git
- A1.3 Visual Studio Code 中的 Git
- A1.4 IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine 中的 Git
- A1.5 Sublime Text 中的 Git
- A1.6 Bash 中的 Git
- A1.7 Zsh 中的 Git
- A1.8 PowerShell 中的 Git
- A1.9 总结
-
A2. 附录 B:在应用程序中嵌入 Git
-
A3. 附录 C:Git 命令
4.3 Git 服务器 - 生成你的 SSH 公钥
生成你的 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 包一起提供,并且 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。