一开始使用GitHub Desktop时在Sync时总是报Authentication Failed 错误,配置好ssh key也解决不了。与此同时用Git Bash提交push时也总是需要再输入用户名和密码,与ssh能过绕过验证的方式有冲突。。
经过一番查找后,终于找到错误所在。GitHub Desktop默认的clone方式是https的,需要改成ssh才能实现,而在客户端的 Repository Settings中Remote无法直接修改,要用到命令行。
把整个过程再总结一下:
1. 生成ssh私有/公有密钥
ssh-keygen -t rsa -C "xxx@xx.com"
引号处为使用的邮箱名
此时在~/.ssh目录中将会生成id_rsa和id_rsa.pub两个文件,前者是私匙,后者是公匙
2. GitHub中添加ssh公钥
在Settings-SSH and GPG keys中将id_rsa.pub中数据复制进去
3. 测试ssh
ssh -T git@github.com
4. 修改remote中的url
git remote set-url origin URL
git remote set-branches [--add] <name> <branch>...
git remote set-url [--push] <name> <newurl> [<oldurl>]
git remote set-url --add <name> <newurl>
git remote set-url --delete <name> <url>
注意下这个修改的格式,之后看Repository Settings中的Remote完成修改。此时客户端和命令行都已经可以正常工作了。