使用ssh访问github
git中使用https访问github经常会报错,改为使用ssh之后基本再出现过问题
使用ssh连接github具体过程和vscode配置免密登录过程差不多
-
本地生成ssh的公钥和密钥 (
ssh-keygen
) -
将公钥(.pub)上传至服务器端(
~/.ssh/authorized_keys
)# 一行命令将本地公钥上传至服务器 cat .ssh/id_rsa.pub | ssh pi 'cat >> ~/.ssh/authorized_keys'
-
配置登录时使用本地的密钥文件进行登录验证
-
首先启动ssh-agent
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566
-
将密钥添加至ssh-agent
$ ssh-add ~/.ssh/yourKeyFile
-
配置完成后即可在git中使用ssh访问远程仓库
详细过程见github英文教程Connecting to GitHub with SSH - GitHub Docs
踩坑记录
- github有两种key,一种是ssh-key和账号关联,一种是deployment-key和仓库关联
- ssh-key在github账号->setting中查看,deployment-key在仓库->setting中查看
- ssh-key和deployment-key不能重复,如果你在仓库中添加了一个key之后又想在账号中添加这个key页面会报错
key is already used
同时页面中还不会显示这个key,反之亦然。 - 如果想把一个deployment-key变成账号的ssh-key则需要找到使用这个key的仓库-》删除—》重新添加,很麻烦。故如果没有特殊需求,只是用ssh克隆仓库,建议一律使用和账号统一关联的ssh-key。