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. duilib界面库

    xml编写界面库 notify控制程序 win32程序 winmain主函数 复杂控件自绘

  2. 我不是一名UX设计师,你也不是

    以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 最近几年,用户体验这个术语开始出现.而且随着它的发展,我们也见证了用户体验设计师的崛起. 每隔几个月 ...

  3. 06 Counting Point Mutations

    Problem Figure 2. The Hamming distance between these two strings is 7. Mismatched symbols are colore ...

  4. vs2015 debugger,unable to attach to application iisexpress.exe

    vs2015 unable to attach to application iisexpress.exe,没有可用的数据了 搞了一天也没解决...

  5. 再次理解js中的call函数

    a.call(b); 网上说明的版本比较多.有的说,是指针替换.有说,将a对象的方法加在b对象执行.官方说:什么对象替换什么对象.反正看了几个版本,尽管有具体的实例,看了我三次都没看懂它的具体含义.看 ...

  6. 关于提交表单时添加自定义值的方式:data中值可绑定function

    表单提交时新增自定义值: $.ajaxForm(){ data:{aaa:"12"} } 但是这个是在初始化的时候就绑定进去的,所以值是固定的初始化时候的值,若想添加动态值,可以这 ...

  7. dede上传文件乱码问题解决

    修改下列两个文件: /include/dialog/select_soft_post.php/include/dialog/select_soft.php 改: select_soft.php文件第1 ...

  8. android ART-逆向研究者的福音?

    android 4.4起,提供了一种与Dalvik截然不同的运行环境-ART(Android Runtime)的支持.目前用户可以选择设备的运行环境,在不久的将来ART肯定会替代Dalvik Runt ...

  9. WebApi中跨域请求的解决方案和原理

    跨域请求仅发生在JavaScript发起Ajax请求时,浏览器对请求的限制,通常只允许访问同一个域中的资源,或者目标服务器明确的通知浏览器允许该域访问资源. 那么什么叫跨域的:主机地址或者ip地址或者 ...

  10. C# 读Autofac源码笔记(1)

    最近在看Autofac的源码. Autofac据说是.net中最快的IOC框架,具体没有实验,于是看看Autofac具体是怎样实例化实体.   image.png 如上图所示,Autofac使用的是表 ...