SSH密钥并非为了解决拉取git仓库代码时,需要频繁输入密码的问题。

SSH是一种比较安全的协议,可以用来免去远程登录Linux等服务器时需要输入密码的繁琐过程。

命令:

ssh user@server-ip

~$ ssh root@www.baidu.com
The authenticity of host 'www.baidu.com (111.111.111.111)' can't be established.
ECDSA key fingerprint is SHA256:dQG6QRYvoWfgkMVcCv5S1jO6nkbv7bUPmS8i5BvhX3g.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.

Git仓库也仅仅使用了以上同一原理。

如何生成SSH公私玥

ssh-keygen -t rsa -C 'mail-address@qq.com' -f ~/.ssh/filename
~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/admin/.ssh/id_rsa.
Your public key has been saved in /Users/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:CGcr7t8PaaQKFLYA7nLjqnBy4P2XNQ/C55Uh7E/bVgY admin@192.168.1.1
The key's randomart image is:
+---[RSA 2048]----+
|. |
|o |
|..o . o . |
|.o o + o o . E |
|o.= . + S . o . |
|o=.o . = B + o |
|o.=.. . X B o o |
|.= o.. = o + o |
|+ ooo ... . |
+----[SHA256]-----+

ssh-keygen参数

ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1]
[-N new_passphrase] [-C comment] [-f output_keyfile]
ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
ssh-keygen -i [-m key_format] [-f input_keyfile]
ssh-keygen -e [-m key_format] [-f input_keyfile]
ssh-keygen -y [-f input_keyfile]
ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
ssh-keygen -B [-f input_keyfile]
ssh-keygen -D pkcs11
ssh-keygen -F hostname [-f known_hosts_file] [-l]
ssh-keygen -H [-f known_hosts_file]
ssh-keygen -R hostname [-f known_hosts_file]
ssh-keygen -r hostname [-f input_keyfile] [-g]
ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]
[-j start_line] [-K checkpt] [-W generator]
ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]
[-O option] [-V validity_interval] [-z serial_number] file ...
ssh-keygen -L [-f input_keyfile]
ssh-keygen -A
ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
file ...
ssh-keygen -Q -f krl_file file ...
-b bits
指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。
-C comment
提供一个新注释
-f filename
指定密钥文件名。
-t type
指定要创建的密钥类型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2)
-T output_file
测试 Diffie-Hellman group exchange 候选素数(由 -G 选项生成)的安全性。

配置多个SSH-Key

Git配置多个SSH-Key
背景
当有多个git账号时,比如: a. 一个gitlab,用于公司内部的工作开发;
b. 一个gitee,用于自己的开发学习; 解决方法
生成一个公司专用的SSH-Key
$ ssh-keygen -t rsa -C 'tec@aliyun.com' -f ~/.ssh/tec@qq.com
生成一个gitee用的SSH-Key
$ ssh-keygen -t rsa -C 'candy@qq.com' -f ~/.ssh/candy@qq.com
在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写服务器的域名,IdentityFile指定私钥的路径)
# gitlab.aliyun.com
Host giteegitlab.aliyun.com
HostName giteegitlab.aliyun.com
IdentityFile ~/.ssh/tec@qq.com
# gitee
Host gitee.com
HostName gitee.com
IdentityFile ~/.ssh/candy@qq.com
4.用ssh命令分别测试 $ ssh -T git@gitee.com
这里以gitee为例,成功的话会返回内容
~$ ssh -T git@gitee.com
Hi Tec! You've successfully authenticated, but GITEE.COM does not provide shell access.

~/.ssh/目录结构

     ~/.ssh/id_dsa

             该用户默认的 DSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。

             生成密钥的时候可以指定采用密语来加密该私钥(3DES)。

             ssh将在登录的时候读取这个文件。

     ~/.ssh/id_dsa.pub

             该用户默认的 DSA 身份认证公钥(SSH-2)。此文件无需保密。

             此文件的内容应该添加到所有 DSA 目标主机的 ~/.ssh/authorized_keys 文件中。

     ~/.ssh/id_rsa

             该用户默认的 RSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。

             生成密钥的时候可以指定采用密语来加密该私钥(3DES)。

             ssh将在登录的时候读取这个文件。

     ~/.ssh/id_rsa.pub

             该用户默认的 RSA 身份认证公钥(SSH-2)。此文件无需保密。

             此文件的内容应该添加到所有 RSA 目标主机的 ~/.ssh/authorized_keys 文件中。

[原创]SSH密钥访问Git仓库配置的更多相关文章

  1. 如何配置 SSH 密钥连接 Git 仓库

    SSH 是 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:是建立在应用层基础上的安全协议. SSH 是目前较可靠,专为远程登录会话和其 ...

  2. Git中如何利用生成SSH个人公钥访问git仓库

    Git中如何利用生成SSH个人公钥访问git仓库方法(这里以coding平台为例): 1. 获取 SSH 协议地址 在项目的代码页面点击 SSH 切换到 SSH 协议, 获得访问地址, 请使用这个地址 ...

  3. Git管理多个SSH密钥,Git多帐号配置

    版权声明:转载须标明本文转自严振杰的博客 https://blog.csdn.net/yanzhenjie1003/article/details/69487932版权声明:转载必须注明本文转自严振杰 ...

  4. Git_使用SSH密钥操作远端仓库

    git支持多种传输协议,ssh协议是其中一种. 初次使用git的用户要使用ssh协议大概需要三个步骤: 生成密钥 设置远程仓库(本文以github为例)上的公钥 把git的 remote url 修改 ...

  5. 使用TortoiseGit,设置ssh方式连接git仓库。

    开始设置之前的准备:建立项目文件夹,初始化git仓库(右键 git  init),右键打开 git bash ,git pull “仓库地址”, 把网站上的仓库代码拉取下来. TortoiseGit使 ...

  6. mac系统下用ssh方式连接git仓库

    1.应用程序-终端,键入命令  ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  ,后面是你的邮箱地址.一直回车,生成密钥. 2.键入  open ~ ...

  7. Spring Cloud 如何动态刷新 Git 仓库配置?

    有时候在配置中心有些参数是需要修改的,这时候如何不重启而达到实时生效的效果呢? 本文基于以下讲解: Spring Cloud Greenwich.SR3 Spring Boot 2.1.7.RELEA ...

  8. Mac下使用SSH(密钥)访问Github

    1,终端中输入:cd ~/.ssh 如果出现 -bash: cd: /Users/glamor/.ssh: No such file or directory,说明你之前没有用过.直接执行第二步. 如 ...

  9. CentOS7虚拟机配置git仓库(配置虚拟机,网络,git仓库,windows端git访问)

    想要达成的目的:从windows使用git访问CentOS7服务器上搭建的git仓库 用到的软件: (1)VMware-workstation-full-15.5.0-14665864.exe (2) ...

随机推荐

  1. java判断一个数是否为素数[转]

    http://blog.csdn.net/lwcumt/article/details/8027586 import java.util.Scanner; //质数又称素数,是指在一个大于1的自然数中 ...

  2. Pygame:编写一个小游戏 标签: pythonpygame游戏 2017-06-20 15:06 103人阅读 评论(0)

    大学最后的考试终于结束了,迎来了暑假和大四的漫长的"自由"假期.当然要自己好好"玩玩"了. 我最近在学习Python,本意是在机器学习深度学习上使用Python ...

  3. ethtool -p eth0 物理口一个灯在不停的闪烁

    摘自:https://blog.csdn.net/morigejile/article/details/78598645 你的  服务器有多个网卡并且已经配置好运行当中,你却没记得eth0.eth1. ...

  4. mongo学习-稀疏索引

    因为,如果要创建唯一索引,那么如果这个值有好几个为Null的,所以也会导致我们创建索引失败,那么我们可以引进系数索引这个概念,它可以做到,支持如果值存在的情况,它必须是唯一的,我们可以 将 uniqu ...

  5. Android Studio NDK环境配置

    本文参考:Android Studio NDK环境配置及JNI使用方法:http://blog.csdn.net/tongseng/article/details/53005123 并添加自己的实践: ...

  6. 使用GeoServer+QGIS发布WMTS服务 | Publishing WMTS Service Using GeoServer+QGIS

    Web GIS系列: 1.搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 2.使用GeoServer+QGIS发布WMTS服务 3.使 ...

  7. spring mvc 入门程序

    入门程序 1.环境准备 myeclipse Spring jar 2.前端控制器设置 (web.xml) 所有的*.action请求通过org.springframework.web.servlet. ...

  8. Java菜鸟之java基础语法,运算符(三)

    赋值运算符 (一)JAVA种的赋值运算符 = ,代表代表的等于,一般的形式是  左边变量名称   =     右边的需要赋的指或者表达式,如果左侧的变量类型级别比较高,就把右侧的数据转换成左侧相同的高 ...

  9. Hexo 最常用的几个命令

    Hexo 约有二十个命令,但普通用户经常使用的大概只有下列几个: hexo s hexo s 启动本地服务器,用于预览主题.默认地址: http://localhost:4000/ hexo s 是  ...

  10. 修改TomCat端口实现多实例

      TomCat默认的端口是8080,还会占用8005,8009和8443端口.如果已经启动了tomcat,再启动一个tomcat会发现这些端口已经被占用了,这个时候就需要修改端口号.   以apac ...