一个菜鸟码农,之前也在git上建过一些私有项目,git clone 拉取代码也没有出过任何问题,今天手痒又新建了一个,但是一直报Permission denied (publickey)错误,不知道是不是因为同时用两个git账号拉代码导致,折腾了半上午,终于解决问题了。
基本步骤如下:
1. 设置Git的user name和email
git config --global user.name "xxxx" //xxxx为git用户名
git config --global user.email "xxxx@xxxx.com" //xxxx@xxxx.com为注册git的邮箱
git config user.name // 查看用户名
git config user.email // 查看用户邮箱
2. 查看是否已经有了ssh密钥:cd ~/.ssh => open ./
//成功后我的有id_rsa、id_rsa.pub、known_hosts这三个文件
如果没有密钥则不会有此文件夹,有则备份删除
3. 清除所有的公钥:ssh-add -D
删除git中的公钥:rm -r ~/.ssh
4. 重新生成公钥:ssh-keygen -t rsa -C "xxxx@xxxx.com”(三个回车)
//xxxx@xxxx.com为注册git的邮箱
5. 进入ssh:cd ~/.ssh
查看公钥:vim id_rsa.pub(复制整个文件内容 <=> 密钥)或者:cat ~/.ssh/id_rsa.pub 复制
6. 浏览器打开git: => SSH公钥 => 粘贴复制好的公钥 => 保存
7. 最后:git clone <地址> 成功拉取代码
遇到问题:ssh: connect to host github.com port 22: Operation timed out
解决:ssh下新增文件config,添加内容
Host github.com
User 关联的email Hostname ssh.github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa Port 443希望对你有点帮助!