由于多年沒(méi)有用ssh方式登錄Github,已經(jīng)完全忘記怎么在Github上配置SSH。雖然本地存有秘鑰,也不會(huì)用了。折騰了幾個(gè)小時(shí),在歡喜之余,也將這次總結(jié)紀(jì)錄下來(lái),以備不時(shí)之需。
本文主要內(nèi)容是如何在Github上配置SSH。
其實(shí)Github已經(jīng)有教程
生成 ssh 秘鑰
其實(shí)很簡(jiǎn)單,在終端執(zhí)行 ssh-keygen help
命令可以看到
ssh-keygen [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1]
[-N new_passphrase] [-C comment] [-f output_keyfile]
-b 加密算法秘鑰長(zhǎng)度
-t 實(shí)用的加密算法類(lèi)型,支持 dsa | ecdsa | ed25519 | rsa | rsa1
-N 秘鑰指紋,一般用默認(rèn)的就好
-C 就是commit
-f 輸出的文件名
實(shí)際使用如下:
Baiya:~ baiya$ ssh-keygen -b 4096 -t rsa -C "some commit, whatever" -f github
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in github.
Your public key has been saved in github.pub.
The key fingerprint is:
SHA256:Ut3vb9oWO3lX3PwgTCIDZ8eAWygHyjH5RNDfUN+5TJc some commit, whatever
生成的秘鑰存放在 ~/.ssh/
文件夾下
生成的秘鑰存放在 ~/.ssh/
文件夾下
生成的秘鑰存放在 ~/.ssh/
文件夾下
進(jìn)入.ssh文件夾下可以看到秘鑰對(duì) github
和 github.pub
.
- 也可以只輸入
ssh-keygen
命令,然后逐個(gè)輸入?yún)?shù)
$ 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 schacon@agadorlaptop.local
添加私鑰:
Baiya:Hexo baiya$ ssh-add ~/.ssh/github
Enter passphrase for ~/.ssh/github:
Identity added: ~/.ssh/github (/Users/baiya/.ssh/github)
確保ssh-agent是打開(kāi)的:
# start the ssh-agent in the background
eval "$(ssh-agent -s)"
Agent pid 59566
配置Github
配置很簡(jiǎn)單,進(jìn)入Github 設(shè)置頁(yè),選擇 SSH and GPG keys -> New SSH key,將上步生成的公鑰copy進(jìn)去即可。
可以用cat
命令查看公鑰內(nèi)容
Baiya:~ baiya$ cat ~/.ssh/github.pub
配之后即可以ssh方式訪問(wèn)github
Baiya:~ baiya$ ssh -T git@github.com
查看秘鑰指紋
新版SSH默認(rèn)是以SHA256格式輸出:
ssh-keygen -lf ~/.ssh/id_rsa.pub
1024 SHA256:19n6fkdz0qqmowiBy6XEaA87EuG/jgWUr44ZSBhJl6Y (DSA)
如果需要以md5方式輸出,還需要加上-E
:
ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub
2048 MD5:4d:5b:97:19:8c:fe:06:f0:29:e7:f5:96:77:cb:3c:71 (DSA)
其他命令
ssh-add -l
列出加入的所有秘鑰,或者以md5方式輸出
ssh-add -l -E md5