当前位置:   article > 正文

git ssh 生成的密钥如何使用_git ssh密钥

git ssh密钥

总体

git作用域

git config的三个作用域:
临时文件 当前git工程目录
用户全局配置 ~/.ssh
系统级配置 /Git/etc/ssh

git config --local        //只对某个仓库有效
git config --global       //对当前用户的所有仓库有效
git config --system       //对系统所有登录用户有效
  • 1
  • 2
  • 3

显示config的配置,加–list

git config --list --local        //只对某个仓库有效
git config --list --global       //对当前用户的所有仓库有效
git config --list --system       //对系统所有登录用户有效
  • 1
  • 2
  • 3

git配置信息

  1. 全局变量配置
    --global 表示全局的,即当前用户都有效,该配置会出现在 ~/.gitconfig 文件中,~表示当前用户的目录
git config --global user.name  "username"  
git config --global user.email  "email"
  • 1
  • 2
  1. 局部变量配置
    当前工程中局部配置,局部是只对当前仓库起效的,它的配置信息会在当前仓库根目录/.git/config文件下
git config user.name  "username"  
git config user.email  "email"
  • 1
  • 2
  1. 修改已配置的信息
    假如配置后,发现有信息配置错了,如何进行修改?
    这里演示修改本地仓库的用户名和邮箱:
git config --replace-all user.name "name"
git config --replace-all user.email "abc@eeee.com"
  • 1
  • 2

git 开发过程中常用命令

git log
git status
git add .
git commit -m "提交信息"
git commit --amend //追加提交
git reset --hard
git rebase 
git push
git fetch
git pull
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

生成密钥

 ssh-keygen -t rsa -C "your_email@example.com" -f "文件名"
代码参数含义:
-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。
  • 1
  • 2
  • 3
  • 4
  • 5

这步网上很多,我随便dawn了别人的一段
主要是这行

ssh-keygen -t rsa -C "邮箱名字"
  • 1
$ ssh-keygen -t rsa -C "1634363254@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/d/MyBlog/.ssh/id_rsa): /c/users/janking/.ssh/gitee_id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/users/janking/.ssh/gitee_id_rsa.
Your public key has been saved in /c/users/janking/.ssh/gitee_id_rsa.pub.
The key fingerprint is:
SHA256:u5Qymut+JLvtu1ohlSuvw9c+tlul0xtjvcsEfh8YMME 1634363254@qq.com
The key's randomart image is:
+---[RSA 2048]----+
|          ..     |
|       .   E.    |
|      o    o     |
|     . .    o    |
|    o o S   o.   |
|    .+.. o = oo  |
|   . +=.+ + *.+. |
|    +*o++o o B o.|

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

使用生成的密钥

默认生成的密钥文件的名字为id_rsa id_rsa.pub,分别是私钥和公钥.将公钥复制到服务器上配置好就行.
在这里插入图片描述
在这里插入图片描述

但有时,本地使用多个账号时,想在不同服务器上使用不同的密钥. 于是本地生成 id_rsa_one,id_rsa_two
类似这样
在这里插入图片描述

上面的步骤,如果啥都不操作的话,ssh解析时 只会使用默认的这个 id_rsa的密钥.如果服务器上配置的是id_rsa_two.其结果就会提示你没有权限

Cloning into 'demo'...
remote: Unauthorized
fatal: Authentication failed for 'http://www.baidu.com/aaa/bbb/ccc/'
  • 1
  • 2
  • 3
启用多个密钥

两种方法
1 ssh-add
此方法是将密钥添加到ssh-agent的高速缓存中

ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_github_rsa
  • 1
  • 2

如果报下面的错误

Could not open a connection to your authentication agent.
  • 1

输入

$ ssh-agent bash
  • 1

再输入上面的命令

展示已经添加的密钥
ssh-add -l

2 创建配置文件,想ssh说明,当前我有哪些密钥可以使用
在.ssh目录下,新建config配置文件。
建不同的 网址===密钥 建立映射关系

#gitlab
Host github.app.cn
   HostName githubcn(别名)
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa_hd
   Port 10080

#github
Host github.com
   HostName githubcom(别名)
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa_github

# 配置文件参数
# Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件  配置本小节被命中的条件,比较的对象是“命令行中输入的host name”
# HostName : 表示SSH Server所在机子的域名,支持完整域名,缩写别名,IP地址,也支持“%h”这个转义序列,该转义序列指代“命令行中输入的host name”。
# User : 登录名
# IdentityFile : 建立SSH连接使用的私钥文件。
# Port : 指定SSH Server所监听的端口。
# ForwardAgent : 是否将“公钥私钥验证匹配计算过程”递交给ssh-agent程序处理。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

参考
1 Git添加多个SSH密钥连接远程库
2 GIT配置SSH以及多账户配置
3 用户手册
4 ssh用户手册

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/970987
推荐阅读
相关标签
  

闽ICP备14008679号