SSH登录及其原理详解 | 您所在的位置:网站首页 › ssh协议登录 › SSH登录及其原理详解 |
干货时刻
本文主要讲解了什么是SSH以及SSH协议口令验证登录和公钥登录等两种登录方式的原理,同时演示了如何用SSH连接Github。 SSH 是什么SSH的全称为Secure Shell,即安全外壳协议。它是一种专为远程登陆会话和网络服务提供安全性的应用层协议。说白了就是用来连接服务器的一种方式。 在SSH的加密原理中,就用到了非对称加密算法。在讲SSH加密原理前,我们先溯本追源,了解一下加密算法和其中经典的非对称加密算法RSA。 加密算法计算机网络中的加密算法主要分为对称加密、非对称加密、散列算法等三种方式。 对称加密:加密和解密使用同一个密钥,例如 DES、AES、IDEA、国密SM1/SM4等等。非对称加密:发送方用公钥对信息进行加密,接收方收到密文后,使用私钥进行解密,例如RSA、ECC和国密SM2散列算法:哈希加密系列算法,特点是不可逆、唯一性,例如MD5、SHA、国密SM3相比起对称加密,非对称加密的安全性更高,但加解密的效率也相对降低。 因此像HTTPS的TLS1.2握手协议就是采用了对称加密和非对称加密结合的方式进行密文数据传输。 RSA 非对称加密算法RSA加密算法是经典的非对称加密算法,其基本流程如下: 客户端在本地构建公钥和私钥,然后将公钥发送给服务器服务器向客户端发送数据的时候用公钥进行加密,客户端收到数据后用私钥解密客户端向服务器发送数据的时候用私钥进行加密,服务器收到数据后用公钥解密缺点在于:如果公钥在传输中泄漏,则黑客可以用公钥破解客户端发送的数据。 SSH 加密原理SSH 共有两种登录方式: 口令验证登录 服务器生成公钥和私钥客户端发起连接请求,服务器将公钥发给客户端客户端生成口令(服务器密码),并用服务器发来的公钥加密,发送给服务器服务器通过私钥解密,拿到口令(服务器密码)如果正确则认证成功 密钥验证登录 客户端生成公钥和私钥,将公钥提前部署在服务器上客户端发起连接请求服务器随机生成一个字符串,用本地的公钥加密,发送给客户端客户端通过私钥解密,将解密后的字符串发送给服务器服务器验证本地字符串和客户端发来的字符串的一致性,如果通过,则认证成功 SSH 远程登录 github根据上节所述,第一步,我们首先要在客户端生成公钥和私钥。 随便找一个文件夹,右键菜单打开 git bash,键入: ssh-keygen -t rsa其中,密钥交换算法选择rsa。之后之后一路敲空格默认即可。 这时,我们可以在本地找到这两把密钥:私钥id_rsa和公钥id_rsa.pub。路径如下: windows:C:/Users/admin/.ssh(不同电脑型号的用户文件夹地址不同,区别就在于admin这个路径,我的是admin,你的可能是ASUS、Lenovo、balabala) mac/linux:~/.ssh 第二步,我们要把公钥部署到github上。 在bash中键入: cd ~/.ssh ls cat id_rsa.pub如下图所示,我们可以拿到公钥的内容,复制下来。 接下来,进入我们的github,点击右上角的个人头像,再进入settings。 之后先点击SSH and GPG keys,再点击New SSH key新建一个SSH公钥 如下图所示,将你复制好的公钥粘贴到 balabala的位置,输入自定义的公钥名,点击Add SSH key即可。 第三步,我们发起连接请求: ssh -T [email protected]其中[email protected]相当于目标用户@目标主机。 第一次连接通常会弹出来下面这句话: Are you sure you want to continue connecting (yes/no/[fingerprint])?我们键入yes即可,之后就会弹出下图,表示登录成功。 想要学习更多优质内容的同学,关注收藏一下作者的个人主页:东曜说 ~~ |
CopyRight 2018-2019 实验室设备网 版权所有 |