ssh原理及两种登录方法图文详解视频,ssh原理及两种登录方法图文详解图片

ssh原理及两种登录方法图文详解视频,ssh原理及两种登录方法图文详解图片,SSH原理及两种登录方法图文详解

SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录和安全数据传输。其确保数据安全的原理是不对称加密。本文以插图的形式介绍了SSH的原理和两种登录方式。让我们看一看。

SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录和安全数据传输。其确保数据安全的原理是不对称加密。

传统的对称加密使用一组密钥,用于数据加密和解密。可想而知,所有的客户端和服务器都需要保存这组密钥,所以泄露的风险很大,一旦密钥泄露,数据安全无法保证。

非对称加密解决了这个问题。它包含两组秘密密钥——公钥和私钥,其中公钥用于加密,私钥用于解密,私钥无法通过公钥计算。所以私钥被小心翼翼的保存在服务器里,公钥可以自由传输,即使泄露也没有风险。

保证SSH安全的方法简单来说就是客户端和服务器分别生成一组私钥和公钥,互相交换公钥,这样发送的每一条数据都可以用对方的公钥加密,对方收到后可以用自己的私钥解密。

链接创建

从上图可以看出,两台机器除了保存各自的一组公钥和私钥之外,还会保存对方的公钥,所以必须有一个交换各自公钥的步骤。其实分开发送公钥并不简单,但是有一些特殊的算法。这个步骤发生在数据传输之前的第一个链路上。

启动一个客户机链接,请求服务器返回它自己的公钥和一个会话ID(在这一步,客户机获得服务器的公钥)。客户端生成一个密钥,将会话ID与客户端自己的公钥进行异或运算,计算出一个值,然后用服务器的公钥对加密后的值进行加密。服务器用私钥解密服务器,并将会话ID与解密后的值进行异或运算,以计算客户端的公钥(在这一步中,服务器获取客户端的公钥)。至此,双方持有三个秘密密钥,分别是自己的公钥和私钥。

这里有个有趣的点。两台机器第一次使用SSH链接时,当服务器返回自己的公钥(步骤2)时,客户端会有信息提示,大意是无法验证对方是否可信,并给出对方公钥的MD5编码值,询问是否确定要建立链接。

这是因为SSH在传输过程中是安全的,但是没有办法知道发送的公钥是否真的来自第一次建立链接时自己请求的服务器。如果有人在客户端请求服务器后拦截请求,并返回他的公钥来冒充服务器,那么在链接建立的情况下,所有数据都可以被攻击者用他的私钥解密。这就是所谓的中间人攻击。

利用密码登录

SSH也通常用于远程登录其他机器。常见的方法有两种,第一种是账号密码登录。

收到登录请求后,服务器首先交换密钥。详细步骤在上一节中描述。

用客户端服务器的公钥加密帐户密码并发送。

服务器用自己的密钥解密帐户密码,然后进行验证。

服务器用客户机的公钥加密验证结果并返回它。

服务器用自己的秘密密钥解密以获得验证结果。

利用公钥登录

有时候不是开发者手动连接服务器,而是客户端程序需要连接服务器。这时候用密码登录就不方便了。第一,你需要处理输入密码的问题,第二,你需要找到一个安全地在程序中存储密码的方法。在这种情况下,您可以使用公钥登录,无需密码。

客户端必须手动将其自己的公钥添加到服务器中名为authorized_keys的文件中。顾名思义,这个文件保存所有可以远程登录的机器的公钥。客户端发起登录请求,并发送其自己的公钥(唯一的,但不是公钥)的指纹。服务器根据指纹检测该公钥是否存储在authorized_keys中。如果存在,服务器会生成一个随机字符串,然后用客户机的公钥对其进行加密,并将其返回给客户机,以便用自己的私钥进行解密。然后,它用服务器的公钥对其进行加密,并将其发送回服务器,用自己的私钥进行解密。如果是相同的字符串,则通过验证。

使用公钥登录的关键是手动将客户端的公钥添加到服务器中。比如GitHub就有这一步,添加后可以不用密码登录。

参考资料:

SSH登录认证的详细说明

SSH和SSH密钥简介

图形SSH

SSH原理及应用

总结

以上是边肖介绍的SSH原理和两种登录方式。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: