SSH原理

SSH原理如果对对称加密和非对称加密还不太了解 请先了解 通信加密原理 https blog csdn net lzghxjt article details 一 SSH 原理 SSH 为 Secure Shell 的缩写 默认端口 22 由 IETF 的网络小组 Network Working

大家好,我是讯享网,很高兴认识大家。

如果对对称加密和非对称加密还不太了解,请先了解《通信加密原理》:https://blog.csdn.net/lzghxjt/article/details/

一、SSH原理:

        SSH为Secure Shell的缩写,默认端口22,由IETF的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH仅仅是一协议标准,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案。使用范围最广泛的当然是开源实现OpenSSH。

        生成公钥和私钥的方法:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

讯享网

ssh-keygen是用于产生密钥的工具。其中参数:

  • -t:指定生成密钥的类型(rsa、dsa、ecdsa等);
  • -P:指定passphrase,用于确保私钥的安全;
  • -f:指定存放私钥的文件,公钥文件默认和私钥同目录,只是公钥的文件名是私钥的文件名加后缀.pub;

会在指定目录生成文件id_rsa和id_rsa.pub,其他文件是在使用过程中过生成,可以修改。其中:

  • id_rsa:存放私钥;
  • id_rsa.pub:存放公钥;
  • known_hosts:存放已认证的远程主机的公钥。连接其他服务端时,生成此文件并将其他服务端的公钥追加到此文件中;
  • authorized_keys:存放已授权的客户端公钥,可用于客户端免登录。当其他客户端想登录此服务端时,新建该文件并将这些客户端的公钥追加到此文件中就可以免密登录;
  • config:用于配置要快速访问的服务端的别名等配置信息。可配置多个服务端的相关信息,可使用通配符,如果多次匹配以第一次匹配为准,这样就可以使用ssh 别名 直接登录。详情参考man ssh_config,常用的配置如下:
讯享网Host xxx #别名或通配符,匹配的别名将用此配置 HostName 111.222.33.444 #服务端的ip Port 22 #服务端的SSH端口 User work #要登录服务端的用户名 IdentityFile ~/.ssh/id_rsa #要登录服务端的用户的私钥(本地客户端的私钥) ControlMaster auto #session共享 ControlPath ~/.ssh/master-%r@%h:%p #session共享文件的路径 ControlPersist yes #主连接一直在后台是连接的 ServerAliveInterval 60 #连接时间间隔 

        客户端请求服务端时,客户端会获取服务端的公钥,因为没有像HTTPS那样的CA,所以第一次连接时只能由客户端自己确认公钥是不是正确。


讯享网

客户端第一次登录服务端时,会提示:无法确认主机xxx.com(xxx.31.18.60)的真实性,不过知道它的公钥指纹(之所以用fingerprint代替公钥,主要是公钥太长(RSA算法生成的公钥有1024位),很难直接比较。所以对公钥进行hash生成一个128位的指纹,这样就方便比较了),是否继续连接?

如果输入yes后,会出现如下提示信息:将该服务器的公钥已添加到know_hosts文件中,然后提示输入密码进行登录。

二、公钥(免密)登录原理 :

        SSH登录时每次都需要输登录密码,很麻烦。SSH提供了另外一种可以免去输入密码过程的登录方式:公钥登录。流程如下:

  • Client将自己的公钥存放在Server上,追加到文件authorized_keys中。
  • Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey(R),然后将加密后信息发送给Client。
  • Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。
  • Server端也会对R和SessionKey利用同样摘要算法生成Digest2。
  • Server端会最后比较Digest1和Digest2是否相同,完成认证过程。

 

参考:https://www.jianshu.com/p/33461b619d53

          https://www.cnblogs.com/xjshi/p/9146296.html

小讯
上一篇 2025-02-14 07:58
下一篇 2025-04-06 11:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/129816.html