初遇SSH
第一次遇到ssh是在公司配置环境的时候,需要通过ssh配置公钥和私钥来连接公司内网的git,刚开始看到文档的时候,不知道这是干什么的,还以为是https里面的ssh加密协议这些东西呢,也就是因为不清楚原理,导致配置的时候出了很多的问题,然后才想着去弄清楚什么是ssh。
SSH安装遇到的问题
首先说安装ssh的时候遇到的问题吧,其实按照文档安装ssh问题不大,一般不会有安装不成功的情况,只不过需要注意一些细节,比如,因为使用的是公司内网的内容,在进行ssh配置的时候要使用具有权限的账号,而不是自己的账号。这一点非常重要。
什么是SSH
ssh是一种网络协议,常用于进行远程登录,可以有效防止远程管理过程中的信息泄露。
SSH浅析
通过安装ssh,会在当前目录下生成.ssh隐藏文件夹,其中包含id_rsa和id_rsa.pub,其中id_rsa是生成的私钥,id_rsa.pub是公钥,当我们作为客户端去远程登录服务端的时候,需要先把公钥中的内容放到服务端下,然后对服务端进行请求,服务端收到请求之后,会在主目录下寻找对应的公钥,然后生成随机数,使用公钥对随机数进行加密发送给客户端进行质询,客户端收到之后,使用生成的私钥进行解密,并将解密之后的数据发送给服务端,服务端通过比较随机数是否相同判断用户能否登录。由此可以实现免密登录。
SSH加密算法
ssh建立连接的过程主要分为:
1.ssh协议版本协商
2.密钥和算法协商
3.认证阶段
4.会话请求
5.会话交互
首先由客户端通过tcp三次握手与服务端建立连接,之后服务端通过建立好的连接向客户端发送自己支持的ssh协议版本,由客户端进行选择通信的ssh版本,发送给服务端,由服务端决定连接是否成功(如果客户端选择的ssh版本,服务端不支持,则连接失败),然后有相同的方式,双方进行密钥和加密算法的协商。并生成会话密钥对之后的通信数据进行加密。然后由客户端向服务端发出认证请求,发送自己的用户名,密码,密钥等信息,让服务端进行认证,支持密码认证和密钥认证。认证通过之后,服务端等待客户端进行会话请求,如果请求成功,则进入会话交互阶段。