由于多年没有用ssh方式登录Github,已经完全忘记怎么在Github上配置SSH。虽然本地存有秘钥,也不会用了。折腾了几个小时,在欢喜之余,也将这次总结纪录下来,以备不时之需。
本文主要内容是如何在Github上配置SSH。
其实Github已经有教程
生成 ssh 秘钥
其实很简单,在终端执行 ssh-keygen help
命令可以看到
ssh-keygen [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1]
[-N new_passphrase] [-C comment] [-f output_keyfile]
-b 加密算法秘钥长度
-t 实用的加密算法类型,支持 dsa | ecdsa | ed25519 | rsa | rsa1
-N 秘钥指纹,一般用默认的就好
-C 就是commit
-f 输出的文件名
实际使用如下:
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/
文件夹下
进入.ssh文件夹下可以看到秘钥对 github
和 github.pub
.
- 也可以只输入
ssh-keygen
命令,然后逐个输入参数
$ 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是打开的:
# start the ssh-agent in the background
eval "$(ssh-agent -s)"
Agent pid 59566
配置Github
配置很简单,进入Github 设置页,选择 SSH and GPG keys -> New SSH key,将上步生成的公钥copy进去即可。
可以用cat
命令查看公钥内容
Baiya:~ baiya$ cat ~/.ssh/github.pub
配之后即可以ssh方式访问github
Baiya:~ baiya$ ssh -T git@github.com
查看秘钥指纹
新版SSH默认是以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