【Git】如何使用 ssh 密钥配置 git
之前的腾讯云搭建 Linux 环境博客中包含了本文,但是由于在我的环境下 SSH 配置 git 无法多次生效。为了避免误导,所以把这一部分单独成文,并删除原文中相关部分
22-06-19 更新:问题已解决,可放心阅读本文!
1. 创建 SSH 密钥
只要你安装好了 git 的命令行工具,在 linux 和 windows 下都是一样的操作。
① 本地创建 ssh 密钥
输入这个语句(github 啥的都是同理)
1 | ssh-keygen -t rsa -C "你的gitee账户邮箱" |
然后会弹出来让你输入一个文件名,直接连按 3 次回车跳过
1 | Enter file in which to save the key (/home/muxue/.ssh/id_rsa): id_rsa_用户名 |
后面出现的 passphrase
语句直接回车跳过,出现下面这个就是配置好了
1 | Your identification has been saved in id_rsa_用户名 |
② 把 SSH 公钥添加到 gitee/github 账户上
直接 cd .ssh
进入隐藏文件夹,cat
你刚刚生成的 pub 文件,将内容复制
1 | cd .ssh |
你还可以使用 Xftp 打开刚刚创建的密钥文件,把里面生成的内容复制一份
如果是 windows 电脑,命令也是一样的,生成的文件是在 C:/用户/你的用户名/.ssh
文件夹中。
在 gitee 账户设置中找到 SSH 公钥,添加即可
github 同理(github 中文页面是用了油猴插件)
同一个密钥是可以在多个平台用的,但是同一个密钥不能在多个设备用。
否则 push 的时候,远端服务器会禁止并提示你当前密钥有另外一台设备在使用。
为了安全性,建议一台主机一个 ssh 密钥,并定时轮换(重新生成新的,替换掉旧的)
③ 测试 ssh 连接
搞定密钥后,测试是否可以用 ssh 访问我们的远程仓库
1 | ssh -T git@gitee.com |
出现下面的就是成功了
1 | ❯ ssh -T git@gitee.com |
④ 该方式有错误(已解决)
刚开始处理的时候,SSH 方式不知为何,在我的云主机上,只有当次设置有效,重新打开终端连接云服务器(云服务器没有重启)SSH 就会失效。在我的 Linux 用户目录下以及我朋友的用户目录下都出现了这个问题!
如果你也出现了这个问题,请直接使用账户密码方式,而不是 SSH
22-06-19 更新:在原先博客中,提到了下面这个本地添加 ssh 密钥的步骤(该步骤错误,请不要执行!不要执行!不要执行!)
执行下面两个语句,添加你的 ssh 密钥到设置中。注意,生成的密匙应该是在
bash
1
2 ssh-agent bash
ssh-add ~/.ssh/id_rsa_用户名
实际上,出现无法多次使用的问题,就是因为这莫须有的一步操作!
正确方法是:别执行这一步,就 OK 了!
如果你之前做了这一步,那就删除这里创建出来的文件,重新创建一个 ssh 密钥。
2. 克隆远程仓库
使用 mkdir 文件夹名
创建一个文件夹,CD
进去后,克隆我们的远程仓库
1 | git clone 远程仓库的ssh链接 |
因为现在我们配置的是 SSH 方式,所以要使用 SSH 链接而不是 https
克隆成功后,cd
进入该目录,git status
查看 git 仓库当前状态,应该是 up-to-date 的。
3. 上传代码
随便创建一个新的文件,测试能否正常 PUSH 到远程仓库
这部分涉及到 git 命令行操作,如果你不会,可以搜几篇 git 的博客学习一下
1 | git add 文件夹 #添加需要上传的文件路径 |
因为我们没有设置用户名和邮箱,所以出现了下面的报错
用下面的两行命令,可以单独设置当前仓库的用户邮箱和用户名。如果需要全局设置,则依照上图中的操作,使用 git config --global
语句即可
1 | git config user.email "you@example.com" |
同时我们需要用下面的这个命令,设置让 git 默认 push 到当前分支上
1 | git config --global push.default current |
再次测试 git push
,成功!
有任何问题都可以在评论区提出哦!
- 最新
- 最热
- 最早
- 作者
点击重新获取 | 打开控制台