[原创]SSH密钥访问Git仓库配置
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仓库配置的更多相关文章
- 如何配置 SSH 密钥连接 Git 仓库
SSH 是 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:是建立在应用层基础上的安全协议. SSH 是目前较可靠,专为远程登录会话和其 ...
- Git中如何利用生成SSH个人公钥访问git仓库
Git中如何利用生成SSH个人公钥访问git仓库方法(这里以coding平台为例): 1. 获取 SSH 协议地址 在项目的代码页面点击 SSH 切换到 SSH 协议, 获得访问地址, 请使用这个地址 ...
- Git管理多个SSH密钥,Git多帐号配置
版权声明:转载须标明本文转自严振杰的博客 https://blog.csdn.net/yanzhenjie1003/article/details/69487932版权声明:转载必须注明本文转自严振杰 ...
- Git_使用SSH密钥操作远端仓库
git支持多种传输协议,ssh协议是其中一种. 初次使用git的用户要使用ssh协议大概需要三个步骤: 生成密钥 设置远程仓库(本文以github为例)上的公钥 把git的 remote url 修改 ...
- 使用TortoiseGit,设置ssh方式连接git仓库。
开始设置之前的准备:建立项目文件夹,初始化git仓库(右键 git init),右键打开 git bash ,git pull “仓库地址”, 把网站上的仓库代码拉取下来. TortoiseGit使 ...
- mac系统下用ssh方式连接git仓库
1.应用程序-终端,键入命令 ssh-keygen -t rsa -C "xxxxx@xxxxx.com" ,后面是你的邮箱地址.一直回车,生成密钥. 2.键入 open ~ ...
- Spring Cloud 如何动态刷新 Git 仓库配置?
有时候在配置中心有些参数是需要修改的,这时候如何不重启而达到实时生效的效果呢? 本文基于以下讲解: Spring Cloud Greenwich.SR3 Spring Boot 2.1.7.RELEA ...
- Mac下使用SSH(密钥)访问Github
1,终端中输入:cd ~/.ssh 如果出现 -bash: cd: /Users/glamor/.ssh: No such file or directory,说明你之前没有用过.直接执行第二步. 如 ...
- CentOS7虚拟机配置git仓库(配置虚拟机,网络,git仓库,windows端git访问)
想要达成的目的:从windows使用git访问CentOS7服务器上搭建的git仓库 用到的软件: (1)VMware-workstation-full-15.5.0-14665864.exe (2) ...
随机推荐
- duilib界面库
xml编写界面库 notify控制程序 win32程序 winmain主函数 复杂控件自绘
- 我不是一名UX设计师,你也不是
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 最近几年,用户体验这个术语开始出现.而且随着它的发展,我们也见证了用户体验设计师的崛起. 每隔几个月 ...
- 06 Counting Point Mutations
Problem Figure 2. The Hamming distance between these two strings is 7. Mismatched symbols are colore ...
- vs2015 debugger,unable to attach to application iisexpress.exe
vs2015 unable to attach to application iisexpress.exe,没有可用的数据了 搞了一天也没解决...
- 再次理解js中的call函数
a.call(b); 网上说明的版本比较多.有的说,是指针替换.有说,将a对象的方法加在b对象执行.官方说:什么对象替换什么对象.反正看了几个版本,尽管有具体的实例,看了我三次都没看懂它的具体含义.看 ...
- 关于提交表单时添加自定义值的方式:data中值可绑定function
表单提交时新增自定义值: $.ajaxForm(){ data:{aaa:"12"} } 但是这个是在初始化的时候就绑定进去的,所以值是固定的初始化时候的值,若想添加动态值,可以这 ...
- dede上传文件乱码问题解决
修改下列两个文件: /include/dialog/select_soft_post.php/include/dialog/select_soft.php 改: select_soft.php文件第1 ...
- android ART-逆向研究者的福音?
android 4.4起,提供了一种与Dalvik截然不同的运行环境-ART(Android Runtime)的支持.目前用户可以选择设备的运行环境,在不久的将来ART肯定会替代Dalvik Runt ...
- WebApi中跨域请求的解决方案和原理
跨域请求仅发生在JavaScript发起Ajax请求时,浏览器对请求的限制,通常只允许访问同一个域中的资源,或者目标服务器明确的通知浏览器允许该域访问资源. 那么什么叫跨域的:主机地址或者ip地址或者 ...
- C# 读Autofac源码笔记(1)
最近在看Autofac的源码. Autofac据说是.net中最快的IOC框架,具体没有实验,于是看看Autofac具体是怎样实例化实体. image.png 如上图所示,Autofac使用的是表 ...