Git配置SSH Key

  最近看到很多人在配置Git时,遇到很问题,网上教程千篇一律。这儿自己单独记录一份。

Git配置SSH Key

1.检查本机是否有ssh key设置,切换到.ssh目录
  $ cd ~/.ssh 或cd .ssh

2.配置git用户名和邮箱,配置多个用户时添加 --add 参数
  $ git config --global --add user.name "username"
  $ git config --global --add user.email "email"

  $ git config --global --unset user.name "username"            #移除用户
  $ git config --global --unset user.email "email"               #移除邮箱

3.查看用户名和邮箱
  $ git config --list

(如果没有安装TortoiseGit则跳过)因为TortoiseGit和Git的冲突需要把TortoiseGit设置改正如下:
  1.在右键选择 TortoiseGit  ->  Settings  ->  Network  
  2.将SSH client指向  ~Git\usr\bin\ssh.exe  (Git安装路径下的\usr\bin\ssh.exe)

4.生成成对的私钥公钥
  $ ssh-keygen -t rsa -C "test@qq.com"
  注:生成id_rsa私钥公钥时需要命不同文件名,密码可设可不设。

5.添加ssh key到对应的GitHub或GitLab上面
  登录GitHub系统;点击右上角账号头像的“▼”→Settings→SSH kyes→Add SSH key。
  复制id_rsa.pub的公钥内容到Key填写框内。

6.测试公钥配置是否成功
  $ssh -T git@github.com  

  FQA
1.Git克隆代码需要输入密码?Git提交代码需要输入账号、密码的。
  tips:      1.Access denied. 
          2.Authentication failed.
          3.Permission denied (publickey).
  说明:问题根源是TortoiseGit采用的是自己的ssh.exe生成密钥,与git的密钥生成方式不一致,导致密钥无效。
  解决:  1.重新配置用户名和邮箱,重新生成密钥,把密钥放入远程仓库中。
       2.检查TortoiseGit右键的TortoiseGit -> Settings -> Network设置,
        将SSH client指向 ~Git\usr\bin\ssh.exe

常用命令
$git clone url                     #克隆远程仓库
$git --version                    #查看git的版本信息
$git branch                     #查看本地所有分支
$git branch -a                   #查看所有的分支
$git branch -r                    #查看远程所有分支
$git branch dev                 #创建分支
$git branch -D master develop           #删除本地库develop

$git checkout dev                   #切换到本地dev分支
$git checkout -b dev               #创建分支并切换分支
$git checkout --track origin/dev           #切换到远程dev分支

$git commit                   #提交 
$git commit -am "test"                #提交并且加注释 
$git commit -m [message]               #提交暂存区到仓库区
$git commit -v                     #提交时显示所有diff信息

$git status                      #查看当前状态 
$git remote show                 #查看远程库
$git remote add origin url              #添加远程库
$git remote show origin                 #显示远程库origin里的资源

$git pull                     #本地与服务器端同步
$git push origin master               #将文件给推到服务器上 
$git push origin master:develop            #将本地库develop与服务器上的库进行关联
$git push origin master:my-dev             #将本地库与服务器上的库进行关联

$git merge origin/dev               #将分支dev与当前分支进行合并
$git add read.txt                  #将文件加入git
$git rm read.txt                   #从git中删除指定文件

更多命令参考:https://www.cnblogs.com/zengming/p/7733099.html

备注:
作者:Shengming Zeng
博客:https://blog.youkuaiyun.com/Z645817

本文是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。
<欢迎有不同想法或见解的同学一起探讨,共同进步>

### 如何在 Git配置 SSH 密钥 #### 配置 SSH 密钥的意义 SSH 是一种加密网络协议,允许通过不安全的网络进行安全通信。对于 Git 用户来说,配置 SSH 密钥可以让开发者无需每次操作远程仓库时都输入用户名和密码。 --- #### 步骤说明 #### 1. 检查现有 SSH 密钥是否存在 在开始之前,先确认是否有已经生成SSH 密钥对。打开终端(Windows 可以使用 Git Bash 或 PowerShell),执行以下命令: ```bash ls ~/.ssh/ ``` 如果存在 `id_rsa` 和 `id_rsa.pub` 文件,则表示已有密钥对;如果没有这些文件,则需要生成新的密钥对[^1]。 --- #### 2. 生成新的 SSH 密钥对 如果尚未创建过 SSH 密钥对,可以通过以下命令生成: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 其中 `-C "your_email@example.com"` 参数是一个可选字段,通常填写用户的电子邮件地址作为备注信息[^4]。 运行上述命令后,系统会提示指定存储位置,默认路径为 `~/.ssh/id_rsa`。接着会询问是否设置密码短语(passphrase)。虽然可以留空,但从安全性角度出发,推荐设置一个强密码[^3]。 最终会在 `~/.ssh/` 目录下生成两个文件: - **私钥**:`id_rsa` —— 不得泄露给他人。 - **公钥**:`id_rsa.pub` —— 提供给远程服务提供商。 --- #### 3. 查看并复制公钥内容 生成密钥之后,需将公钥的内容添加至目标 Git 远程主机(如 GitHub、GitLab 等)。使用以下命令查看公钥内容: ```bash cat ~/.ssh/id_rsa.pub ``` 或者编辑器方式查看: ```vim vim ~/.ssh/id_rsa.pub ``` 复制显示出来的全部内容,准备粘贴到远程平台上的相应区域。 --- #### 4. 添加公钥至远程服务器 登录到对应的代码托管网站(例如 GitHub、GitLab 或 Bitbucket),进入账户设置中的 SSH Keys 页面,点击“Add SSH key”,并将刚才复制的公钥粘贴进去。同时为其命名以便识别(比如设备名称或用途描述)。 --- #### 5. 测试连接 验证新配置是否生效,尝试与远程服务器建立无密码认证链接。假设目标是 GitHub,可以在终端中运行如下测试指令: ```bash ssh -T git@github.com ``` 如果是首次访问,可能会弹出警告框请求信任此主机指纹记录,按照指示接受即可。成功的话应该收到类似下面的消息: > Hi username! You've successfully authenticated, but GitHub does not provide shell access. 这表明 SSH 设置已完成[^2]。 --- #### 常见错误处理 当遇到权限被拒绝 (`Permission denied (publickey)`) 的情况时,请检查以下几个方面: 1. 是否正确上传了公钥; 2. 私钥文件权限是否恰当(应设为仅自己可读写:`chmod 600 ~/.ssh/id_rsa`); 3. 如果仍然失败,考虑重新生成一对全新的密钥再试一次。 --- ### 总结 以上即是在 Git 使用场景下的完整 SSH 密钥配置流程。遵循上述指导可以帮助开发人员更高效便捷地管理源码版本控制工作流。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值