Pro Git
professional version control
This is an in-progress translation.
To help translate the book, please fork the book at GitHub and push your contributions.
To help translate the book, please fork the book at GitHub and push your contributions.
生成 SSH 公钥
话虽如此,大多数 Git 服务器使用 SSH 公钥来授权。为了得到授权,系统中的每个没有公钥用户都得生成一个新的。该过程在所有操作系统上都差不多。 首先,确定一下是否已经有一个公钥了。SSH 公钥默认储存在账户的 ~/.ssh
目录。进入那里并查看其内容,有没有公钥一目了然:
$ cd ~/.ssh
$ ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
关键是看有没有用 文件名 和 文件名.pub 来命名的一对文件,这个 文件名 通常是 id_dsa
或者 id_rsa
。 .pub
文件是公钥,另一个文件是密钥。假如没有这些文件(或者干脆连 .ssh
目录都没有),你可以用 ssh-keygen
的程序来建立它们,该程序在 Linux/Mac 系统由 SSH 包提供, 在 Windows 上则包含在 MSysGit 包里:
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/schacon/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/schacon/.ssh/id_rsa.
Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
43:c5:5b:5f:b1:f1:50:43:ad:20:a6:92:6a:1f:9a:3a [email protected]
它先要求你确认保存公钥的位置(.ssh/id_rsa
),然后它会让你重复一个密码两次,如果不想在使用公钥的时候输入密码,可以留空。
现在,所有做过这一步的用户都得把它们的公钥给你或者 Git 服务器的管理者(假设 SSH 服务被设定为使用公钥机制)。他们只需要复制 .put
文件的内容然后 e-email 之。公钥的样子大致如下:
$ 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== [email protected]
关于在多个操作系统上设立相同 SSH 公钥的教程,可以在 GitHub 有关 SSH 公钥的向导中找到:http://github.com/guides/providing-your-ssh-key
。