-
1. 起步
-
2. Git 基礎
-
3. Git 分支
-
4. 伺服器上的 Git
- 4.1 協議
- 4.2 在伺服器上部署 Git
- 4.3 生成你的 SSH 公鑰
- 4.4 架設伺服器
- 4.5 Git Daemon
- 4.6 Smart 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://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent。