问题简述
使用 Github
做代码托管服务平台做开发,每次执行 push 命令时,都需要输入账号和密码,有时还登录不上,所以需要配置一下本地的 git,把连接从 https 改为 ssh,这样就省去了很多麻烦。
解决方案
生成机器公钥
打开命令行,进入 .ssh 目录,生成秘钥。
# 下面的目录指的是用户目录(根据具体情况替换),如果没有 .ssh 检查目录是否被隐藏
cd C:\Users\Administrator\.ssh
# 生成秘钥
ssh-keygen -t ed25519
在 GITHUB 上配置
点击右上角的头像,选择 settings,可以看到如下界面:
选择新建 SSH key,然后把刚刚生成的公钥粘贴至此。
操作是否成功的检查如下:
# 在命令行输入
ssh -T git@github.com
# 成功的结果为
# Hi henrenx! You've successfully authenticated, but GitHub does not provide shell access.
配置客户端的连接
这步的目的是把原有仓库的 https 协议的连接修改成 git 协议的连接。如果还没有创建仓库,可以在 github 上先创建完毕,再使用 git 协议的 url 把仓库克隆下来。这样就不必再修改配置了,不过可以拿下面的命令进行验证。
# 查看当前的远程链接(需在有 git 仓库的目录下执行):
git remote -v
# 设置链接为 ssh
git remote set-url origin git@github.com:henrenx/exam.git
# 如果未配置 ssh,结果应是 https 类型的
# origin https://github.com/henrenx/exam.git (fetch)
# origin https://github.com/henrenx/exam.git (push)
# 配置了 ssh 后,结果是 ssh 类型的
# origin git@github.com:henrenx/exam.git (fetch)
# origin git@github.com:henrenx/exam.git (push)