当前位置: 主页 > 建站知识 > APP开发

免密登录-win10免密登录

发布时间:2023-04-19 09:02   浏览次数:次   作者:佚名

提示:其他远程仓库的SSHKey配置步骤都类似,例如:Gitee,GitHub、Gitlab等。

一、引言

Git有两种克隆代码的方式:一种是http,另外一种就是SSH。

用http方式拉取的仓库,每次向GitHub仓库推送代码都要输入Git的账号与密码,进行身份验证才可访问,非常麻烦。那么如何才能避免每次推送代码都要输入账号密码呢?

二、免密登陆原理

(1)免密登录机制

Git主机间的通信采用的是SSH协议,即Sercure Shell协议。

该协议的免密登录机制,要求主机之间采用SSH-key,即SSH密钥的方式进行身份验证。

SSH密钥包含“公钥与私钥",所以我们首先要了解什么是“公钥与私钥”,然后还要理解“公钥与私钥”在免密登录中的作用,即免密登录的工作原理。

(2)公钥与私钥

公钥(Public Key)与私钥(Private Key)是通过加密算法得到的一个密钥对(即一个公钥和一个私钥,也就是非对称加密方式)。公钥可对会话进行加密、验证数字签名免密登录,只有使用对应的私钥才能解密会话数据,从而保证数据传输的安全性。公钥是密钥对外公开的部分,私钥则是非公开的部分,由用户自行保管。

通过加密算法得到的密钥对可以保证在世界范围内是唯一的。使用密钥对的时候,如果用其中一个密钥加密一段数据,只能使用密钥对中的另一个密钥才能解密数据。例如:用公钥加密的数据必须用对应的私钥才能解密;如果用私钥进行加密也必须使用对应的公钥才能解密,否则将无法成功解密。

(3)免密码登录的工作原理

对于免密登录的机制,主要由两部分构成:构建与验证。

免密登录原理示意图:

免密登录_win10免密登录_ssh 免密登录

简单的理解:SSH Key也可以简单的理解为你的身份标识,放在GitHub上面标明你是这个项目的一个开发人员,但是别人可以截获,但是你本机上的私钥无法截获,也就保证了每次传输是安全的。

三、具体配置

1. 配置全局的用户名和邮箱(不是必须)

git config --global user.name "xxx"

git config --global user.email "xxx.com"

2. 打开命令行终端,验证是否有ssh keys,看下返回的结果中是否已经存在了.pub结尾的文件

ls -alh ~/.ssh

如果有.pub结尾的文件直接打开,复制到github上的SSH keys,如果没有就继续执行

2. 使用如下命令生成ssh-keygen密钥,然后一路回车。其中,“邮箱地址”是你的github关联的邮箱。

ssh-keygen -t rsa -C "邮箱地址"

这个时候在默认路径下就生成了两个文件,公钥和私钥。进入主目录下的.ssh文件夹,公钥为id_rsa.pub免密登录,私钥为id_rsa。

执行以下命令查看公钥内容,打开id_rsa.pub文件,复制此内容

cat ~/.ssh/id_rsa.pub

3. 点击账户头像后的下拉三角,选择’settings’。

4. 点击’SSH and GPG keys’,添加ssh公钥。

5. 填写标题,粘贴公钥,点击Add SSH key,输入GitHub密码即可

6. 验证GitHub是否链接

ssh -T git@github.com

这样github的ssh就可以链接mac了,可以上传和下载代码了~~