- 博客
- /手把手教你配置 SSH 密钥连接 GitHub
手把手教你配置 SSH 密钥连接 GitHub
你是不是也遇到过这样的情况:想往 GitHub 上推代码,结果终端里冒出一堆红色错误信息,说什么"Connection timed out"或者"Permission denied"?别慌,这很可能是 SSH 密钥没配置好导致的。
今天我就来手把手教你配置 SSH 密钥,让你轻松连接 GitHub,告别那些烦人的错误提示!
SSH是啥?为啥要用它?
简单来说,SSH 就像是你和 GitHub 之间的一把"钥匙"。以前你每次访问 GitHub 都要输入用户名和密码,既麻烦又不安全。现在有了 SSH 密钥,就像是给你的电脑发了一张"通行证",GitHub一看这把钥匙,就知道是你本人,立马放行!
而且用 SSH 还有一个好处:传输速度更快,更安全。再也不用每次都输入长长的密码了,是不是很香?
先看看你有没有钥匙(检查现有 SSH 密钥)
在开始制作新钥匙之前,咱们先看看是不是已经有一把了:
- 打开你的终端(Windows 用户用 Git Bash,Mac 用户用终端)
- 输入这个命令看看:
ls -al ~/.ssh如果看到类似 id_rsa、id_ed25519 这样的文件,恭喜你!你已经有钥匙了,可以跳过下一节直接去添加到 GitHub 账户。
如果什么都没看到或者报错,那就需要自己制作一把新钥匙了。
制作新钥匙(生成SSH密钥)
没钥匙?别担心,制作一把超级简单:
- 在终端里输入这个命令(记得把
your_email@example.com换成你注册GitHub时用的邮箱):
ssh-keygen -t ed25519 -C "your_email@example.com"- 系统会问你:"钥匙要放在哪里呀?" 直接按回车,用默认位置就行:
Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ed25519):[Press enter]- 接下来会问你要不要给钥匙加个"密码锁"(密码短语)。你可以直接按回车跳过,也可以设置一个密码(更安全一些):
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]告诉电脑要用这把钥匙(启动ssh-agent)
现在钥匙有了,得告诉电脑要用它:
- 先启动钥匙管理器:
eval "$(ssh-agent -s)"- 然后把你的钥匙交给管理器保管:
ssh-add ~/.ssh/id_ed25519如果你用的是其他类型的钥匙(比如RSA),就把命令里的 id_ed25519 换成你的钥匙名字。
把钥匙"复印件"给GitHub(添加到GitHub账户)
现在我们要把钥匙的"复印件"给 GitHub,让它认识你:
- 先复制钥匙上的内容:
cat ~/.ssh/id_ed25519.pub你会看到一串长长的文字,全选复制下来。
-
打开 GitHub官网,登录你的账户
-
点击右上角的头像,选择"Settings"(设置)
-
在左边菜单里找到"SSH and GPG keys",点击进去
-
点击绿色的"New SSH key"按钮
-
在"Title"里给你的钥匙起个名字,比如"我的笔记本电脑"
-
在"Key"框里粘贴刚才复制的那串文字
-
点击"Add SSH key",大功告成!
试试钥匙好不好用(测试连接)
配置好了,咱们来试试钥匙灵不灵:
ssh -T git@github.com如果看到类似这样的信息:
Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.恭喜你!配置成功了!现在你就可以愉快地使用Git和GitHub了。
小白常见问题解决
还是连不上怎么办?
如果还是提示连接超时,可以试试这些方法:
- 检查一下网络是不是正常
- 试试用HTTPS方式:
git remote set-url origin https://github.com/用户名/仓库名.git提示权限被拒绝?
如果看到"Permission denied (publickey)"这样的错误:
- 确认钥匙已经添加到管理器了:
ssh-add -l- 检查一下是不是防火墙或者杀毒软件拦截了
我有多个GitHub账户怎么办?
如果你既有个人账户又有工作账户,可以这样处理:
创建一个配置文件 ~/.ssh/config:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
Host work.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work然后克隆工作仓库的时候用:
git clone git@work.github.com:用户名/仓库名.git几个小贴士
- 定期换钥匙:建议每年换一次SSH密钥,更安全
- 给钥匙加密码:虽然麻烦一点,但更安全
- 千万别泄露私钥:那个没有.pub后缀的文件,打死也不能给别人看!
- 优先用Ed25519:比老的RSA算法更安全更快
- 备份好钥匙:把钥匙文件备份到安全的地方
总结
怎么样?配置 SSH 密钥其实也没那么难吧?只要按照步骤一步步来,很快就能搞定。以后再也不用担心连接不上GitHub了!
如果还有问题,可以看看 GitHub官方文档,那里有更详细的说明。
配置好SSH密钥后,你会发现 Git 操作变得超级顺畅,开发效率 up up!