本文目录:
- 1、如何生成SSH密钥
- 2、生成ssh公钥
- 3、git如何使用ssh密钥
- 4、SSH详解-3.密钥登陆
- 5、换电脑之后生成git ssh密钥(mac版)
- 6、git ssh 密钥生成以及配置
如何生成SSH密钥
打开你的终端窗口。
使用以下命令,将会以你的邮箱作为标签创建一个新的SSH密钥。
$ ssh-keygen -t rsa -b 4096 -C “注册邮箱,比如:zhansan@xx.com”
Generating public/private rsa key pair.
当系统提示您“输入要保存密钥的文件”时,按Enter键。将接受默认文件位置。如下:
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
在提示符下,输入安全密码,即可生成一个新的ssh密钥。
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
生成ssh公钥
许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。
默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。 我们需要寻找一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是与之对应的私钥。如果没有找到或者没有.ssh目录则需要生成。
你可以通过运行 ssh-keygen 程序来创建它们。 在 Linux/macOS 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。ssh-keygen 会确认密钥的存储位置(默认是 .ssh/id_rsa),然后它会要求你输入两次密钥口令。 如果你不想在使用密钥时输入口令,回车即可。 然而,如果你使用了密码,那么请确保添加了 -o 选项,它会以比默认格式更能抗暴力破解的格式保存私钥。 你也可以用 ssh-agent 工具来避免每次都要输入密码。
这时候再cat ~/.ssh/id_rsa.pub就可以看到你的sshkey了。
参考:
git如何使用ssh密钥
首先先来了解一下git的四种传输协议:本地、ssh、git和http,http协议应该说是最常见的一种,因为简单,以下是各个协议的优点与缺点:
地址:
初次使用git的用户要使用git协议大概需要三个步骤:
生成密钥对
大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,生成密钥对:公钥和私钥,一般在~/.ssh 目录下(不管什么系统)
首先就先查看你的本地是否存在,可以自己创建目录:
ssh 目录都没有,可以用 ssh-keygen 来创建
保存文件名,然后输入密码,最后密钥对就生成啦~
ssh
ssh-agent bash //开启ssh代理
ssh-add key-file //添加ssh key文件
每次重启机器都执行一下,或者下个sourceTree/Tortoisegit来管理git项目
设置远程仓库
登陆你的gitlab帐户。点击你的头像,然后 Settings – SSH keys
git的 remote url 修改为git协议
sourceTree/Tortoisegit
SSH详解-3.密钥登陆
SSH详解-1.ssh基础知识
SSH详解-2.ssh基本用法
SSH详解-3.密钥登陆
SSH详解-4.多个ssh公钥
在上一篇中我们了解到了ssh基本用法,ssh通过密码进行登录。密码登录存在很多问题。密码太简单,又不安全。密码太复杂,不容易记,而且每次登录都要输入很麻烦。于是就有了密钥登陆。
什么是密钥(key)?
ssh密钥登录采用的是 非对称加密 。
非对称密钥加密系统,又称公钥密钥加密。它需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公开密钥(public key)和,另一个由用户自己秘密保存,即私用密钥(private key)。
如果数据使用公钥加密,那么只有使用对应的私钥才能解密,其他密钥都不行;反过来,如果使用私钥加密(这个过程一般称为“签名”),也只有使用对应的公钥解密。
了解完密钥后,接下来看看密钥登录的过程,SSH 密钥登录分为以下的步骤。
第零步,准备步骤客户端通过 ssh-keygen 生成自己的公钥和私钥,并将公钥放入远程服务器的指定位置。
第一步,用户客户端向服务器发起SSH登录的请求。
第二步,服务器收到用户SSH登录的请求,服务器生成一些随机数据发送给客户端。
第三步,客户端接收到服务器发过来的数据,客户端使用私钥对数据进行签名后再返回给服务器。
第四步,服务器收到客户端加密后的数据,使用对应公钥进行解密。然后判断解密后的数据是否与原始数据一致,如果一致就允许用户登录。
ssh-keygen 是OpenSSH提供的一个命令行工具,用于生成密钥登录所需的公钥和私钥。
在上面的例子中,我使用了-t参数来指定加密算法,一遍会选择rsa或者dsa。
第一个问题,问我要保存在哪?(直接Enter默认会保存在~/.ssh/id_rsa中)因为我之前已经生成过密钥了,我就保存在tenxun里面。
第二个问题,询问是否要为私钥文件设定密码保护(passphrase)。这样的话,即使入侵者拿到私钥,还是需要破解密码。如果为了方便,不想设定密码保护,可以直接按回车键,密码就会为空。
最后,就会生成私钥和公钥,屏幕上还会给出公钥的指纹,以及当前的用户名和主机名作为注释,用来识别密钥的来源。
从上面的公钥中我们可以看到末尾的公钥注释 23696@DESKTOP-GKRBCVI
公钥注释可以用来识别不同的公钥,表示这是哪台主机(DESKTOP-GKRBCVI)的哪个用户(username)的公钥。
注意 ,公钥只有一行。因为它太长了,显示的时候可能自动换行了。
OpenSSH 规定,用户公钥保存在服务器的 ~/.ssh/authorized_keys 文件。你要以哪个用户的身份登录到服务器,密钥就必须保存在该用户主目录的~/.ssh/authorized_keys文件。只要把公钥添加到这个文件之中,就相当于公钥上传到服务器了。每个公钥占据一行。如果该文件不存在,可以手动创建。
-i 指定要上传公钥(公钥文件可以不指定路径和 .pub 后缀名),user是所要登录的用户名,hostname是主机名,这两个参数与ssh 登录命令是一致。
特别注意 ,不是把公钥上传上去就行了,还需要把 authorized_keys 文件的权限要设为644,即只有文件所有者才能写。如果权限设置不对,SSH服务器可能会拒绝读取该文件,导致密钥登录失效,登录的时候还需要输入密码。
提到输入密码,如果再生成公钥和私钥的时候设置了密码,使用密钥登录的时候也需要输入私钥的密码,这样可以防止他人非法窃取了私钥。
私钥设置了密码以后,每次使用都必须输入私钥密码,这个问题可以使用 ssh-agent 命令解决。
百度百科-密钥
Git – 生成 SSH 公钥 (git-scm.com)
ssh(1) – OpenBSD manual pages
换电脑之后生成git ssh密钥(mac版)
1.先安装Xcode,安装完后命令行输入git,测试git环境是否安装,如果显示没有文件夹则没有环境
如果显示下图,则表示git安装好
2.运行cat ~/.ssh/id_rsa.pub,查看是否有ssh的文件。有文件直接复制就行
3.运行ssh-keygen,(会要求输入新的文件夹名称和密码,可以不理会一直回车)生成新的密钥,然后再运行cat ~/.ssh/id_rsa.pub,将’ssh-rsa’那段全部复制(包括‘ssh-rsa’),粘贴到github的ssh密钥处(点击头像–setting–ssh key)即可
git ssh 密钥生成以及配置
如果此目录下没有找到,在Git Bash Here中输入如下命令
1、设置git的用户名和邮箱
2、生成公钥和私钥
成功会出现一个图形(一般不会失败。。。)
密钥的存储地址在:C盘 – 用户 – 当前用户 – .ssh目录下
1、打开.ssh文件,会显示id_rsa 和 id_rsa.pub两个文件,id_rsa是私钥, id_rsa.pub是公钥,用记事本打开 id_rsa.pub然后复制;
2、打开使用的git找到ssh keys然后新增ssh,将复制的公钥粘贴,名称可以根据自己的需求取;
3、测试是否成功
4、打开项目使用ssh克隆项目即可(可以用编辑器或者命令)
本文来源:https://www.yuntue.com/post/152888.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏