SSH(Secure Shell)协议:
2016-11-27 01:36
295 查看
SSH(Secure Shell)协议: 概念:SSH采用的是”非对称密钥系统”,即公钥私钥加密系统,其安全验证又分为两种级别。 1)基于口令的安全验证:使用用户名密码进行联机登录,其整个过程大致如下: 1)用户发起连接请求。 2)远程主机收到用户的登录请求,把自己的公钥发给用户。 3)用户接收远程主机的公钥,然后使用远程主机的公钥加密登录密码,紧接着将加密后的登录密码连同自己的公钥一并发送给远程主机。 4)远程主机接收客户端的公钥及加密后的登录密码,用自己的私钥解密收到的登录密码,如果密码正确则允许登录,到此为止双方彼此拥有了对方的公钥,开始双向加密解密。 注意: 1)当网络中有另一台冒牌服务器B冒充远程主机时,用户的连接请求被服务器B拦截,服务器B将自己的公钥发送给客户端,客户端就会将密码加密后发送给冒牌服务器,冒牌服务器就可以拿自己的私钥获取到密码,这时客户端的密码就被盗取了。 2)当第一次连接远程主机时,在第3步中,会提示您确认当前远程主机的”公钥指纹”,以保证远程主机是正版的远程主机,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到 ~/.ssh/known_hosts文件中。 2)基于密匙的安全验证:免密码登录 1)在当前用户A的家目录下为自己创建一对密匙,并把公匙放在需要登录的服务器上。 说明:就是将用户的公钥放到服务器上你要登录的用户的家目录下的.ssh/authorized_keys文件中(即:~/.ssh/authorized_keys) 2)用户A发起连接请求:向服务器请求使用密匙进行安全验证。 3)服务器收到请求之后,会在(服务器上)你要登录的用户的家目录下寻找用户A的公匙,然后与用户A发送过来的公匙进行比较。 4)如果两个公匙一致,服务器就用该公匙加密“质询”并把它发送给用户A。 说明:“质询”:随机生成的一个字符串(用来代替密码)。 5)用户A收到“质询”之后用自己的私匙解密再把它发送给服务器。 6)服务器收到用户A解密后的“质询”,与之前随机生成的“质询”比较,如果一致,则允许登录。 注意:与第一种级别相比,第二种级别不需要在网络上传送口令。 使用场景: 1)rsync自动备份时免密码登录 2)集群环境中主机间的互相通信 相关配置项: SSHD服务的配置文件位于/etc/ssh/sshd_config PubkeyAuthentication # 是否允许使用密钥验证方式登录 AuthorizedKeysFile # 允许登录主机的公钥存放文件,默认为用户家目录下的 .ssh/authorized_keys 权限问题 .ssh文件夹:chmod 700 .ssh/authorized_keys文件:chmod 644
相关文章推荐
- SSH(Secure Shell)协议
- SSH(Secure Shell)协议简介
- SSH客户端之SSH Secure Shell 的连接方法
- Git : SSH 协议服务器
- Java利用ssh协议实现从远程Linux服务器下载文件和文件夹
- 安装 SSH(Secure Shell) 服务以提供远程管理服务
- Linux学习总结(23)——SSH协议详解
- SSH协议分析以及在linux下免秘钥登录流程
- ssh 协议执行repo sync 报错:Permission denied (publickey)
- Telnet与SSH两大协议的区别
- 【Linux远程管理】SSH协议远程管理
- SSH(Secure Shell Protocol)命令之scp
- Linux学习之——SSH协议原理及相关命令
- SSH(Secure Shell Protocol)命令之 grep
- ssh命令、ping命令、traceroute 命令所使用的协议
- 在mac下使用终端命令通过ssh协议连接远程linux系统,代替windows的putty
- SSH, The Secure Shell: The Definitive Guide [ILLUSTRATED]
- maverick组件实现JAVA SSH协议初探
- 【转载】ssh(安全外壳协议)