概念、定义:

  • SSH是Secure Shell Protocol的简写,由IETF网络工作小组(Network Working Group)制定。
  • SSH在数据传输之前,将联机数据包进行加密处理,才会发出给服务端。
  • SSH是unix/linux进行远程控制或者传输文件的一种协议。
  • SSH包括两部分,SSH客户端和SSHD服务端。

 

特点

  • SSH是密文传输,较明文传输的telnet安全。
  • SSH是基于TCP传输协议的,所以是可靠传输。
  • SSH的默认端口是22,如要改变端口号,需在修改配置文件之后,加-p参数指定新端口进行ssh连接。

 

连接过程:

基于账户密码的连接方式:

  1. 客户端用会话密钥加密用户名、认证方法、密码并将加密后的结果发至服务器端。
  2. 服务器端使用会话密钥解密得到用户名、密码,进行核对。若正确,则通过连接;若失败,则返回认证失败报文给客户端。客户端循环第一步,
    直至达到最大连接次数,TCP连接关闭。
    基于公钥私钥的连接方式:
    1. 客户端使用ssh-keygen生成一对公钥和私钥。
    2. 客户端将公钥推送至服务端。ssh-copy-id -i ~/.ssh/id_rsa.pub server,即将本机的公钥推送至server机的~/.ssh/authorized_keys里。
    3. 客户端用会话密钥加密用户名、认证方法、公钥并将加密后的结果发至服务器端。
    4. 服务器端进行解密后,对比此公钥是否存在于server机的~/.ssh/authorized_keys里。若存在,通过验证,进行下一步;若不存在,
      则返回失败信息。
    5. 服务器端生成质询码,用客户端公钥进行一次加密,用会话密钥进行二次加密,推送给客户端。
    6. 客户端使用会话密钥进行一次解密,用公钥进行二次解密得到质询码。将质询码用会话密钥加密后重新发送给服务器端。
    7. 服务器端使用会话密钥解密后,判断是否是自己的质询码。如果是,则免密登录;若不是,则返回连接失败的信息。
posted on 2019-05-08 20:01  eryoung2  阅读(269)  评论(0编辑  收藏  举报