git中SSH方式的使用

简介

gitclone项目有以下两种方式:

  • HTTPSurl格式:https://xxx.xxx.com/xxx/xxx.git;使用用户名和密码进行验证。
  • SSHurl格式:git@xxx.xxx.com:xxx/xxx.git;clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。服务器上面保存公钥,用户通过私钥请求数据

具体步骤

Mac为例,项目托管在gitlab上面;git客户端使用sourceTree

新建SSH Key

  • 检查电脑上面是否存在SSH Key
cd ~/.ssh ls

查看是否有id_rsaid_rsa.pub等文件;若有则跳过创建SSH Key步骤

  • 创建SSH Keyssh-keygen -t rsa -C "your_email@example.com"

执行过程中,提示输入密码时,一般推荐直接按Enter跳过

创建成功后会出现公钥(id_rsa.pub)、私钥(id_rsa)文件

将公钥设置到gitlab上面

  • 查看公钥内容:cat ./id_rsa.pub

  • 打开gitlab项目页面,点击右上角头像 -> Settings -> SSH Keys -> 将公钥内容复制到key文本框中 -> 点击Add key按钮

  • 到电脑上面测试SSH Keyssh -T git@xxx.xxx.com:xxx/xxx.git

测试出现Welcome to XXX表示配置好了

sourceTree配置

  • SSH Key添加到sourceTreessh-add ~/.ssh/id_rsa

  • SSH Key添加到钥匙串:ssh-add -K ~/.ssh/id_rsa

这样配置后sourceTree就可以使用SSH方式拉取和提交代码了

备注

自从macOS升级到Sierra 10.12以后ssh-agent不会自动加载密码短语了,每次重启后ssh登机器时总是提示输入密钥的密码短语,所以每次开机都要用ssh-add -K ~/.ssh/id_rsa将它手动添加到钥匙串中才行。

可以将其写入到~/.ssh/config配置文件中即可

  • ~/.ssh/目录下,新建config文件
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/github_rsa

IdentityFile可以配置多个

以后每次启动电脑sourceTree都会自动加载SSH Key


创作不易,若本文对你有帮助,欢迎打赏支持作者!

 分享给好友: