SSH(安全外壳协议):为建立在应用层和传输层基础上的安全协议,ssh是目前较为可靠,专门为远程登陆,会话和其他网络服务提供安全 协议。利用ssh协议可以有效的防止远程管理过程中的信息泄露问题,传统的网络服务程序,如ftp,pop和telnet在本质上都是 不安全 的, 因为他们在网络上用明文传输口令和数据,通常使用SSH,可以把所有传输的数据进行加密,能够防止DNS欺骗和IP欺骗,使用SSH,还有一个额外的好处就是传输的数据进过压缩,所以可以加快传输的速度,SSH有很多功能,既可以代替Telnet,又可以为FTP,pop,甚至为PPP提供一个安全的通道,

验证:对于客户端来说,SSH提供两种级别的安全验证,

1.基于口令的安全验证

只要知道自己的账号和口令,就可以登陆远程主机,所有传输的数据都会被加密,但是不能保证正在连接的服务器 就是你想连接的服务器可能会有别的服务器在冒充真正服务器,也就是收到“中间人”这种攻击

2.基于密钥的安全验证

需要依靠密钥,也就是你必须为自己创建的一对密钥,并把公用密钥放在需要访问的服务器上,客户端软件就会向服务器发送请求,请求用你的密钥进行安全验证,服务器收到请求之后,现在该服务器上你的主目录下寻找你的公用密钥,然后把它和你发送过的公用密钥进行比较,如果两个密钥一致,服务器就用公用密钥加密“质询”,并把它发送给客户端软件,客户端收到“质询”之后就可以用你的私人密钥解密在把它发送给服务器

用这种方式,可以增加自己密钥的口令,但是与第一种级别相比,第二种级别 不需要再网络上传送口令,第二种级别不仅加密所有的数据,而且“中间人”这种方式也是不可能的(因为他没有你的私人密钥,)但是整个登录的过程中需要10秒

层次:

SSH主要享有三部分组成:

*传输层协议【SSH-TARNS】

提供了服务器认证,保密性及完整性,此外它还提供了压缩功能,SSH-TARNS通常运行在TCP/IP连接上,也可能用于其他可靠数据流上,SSH-TARNS提供了强力的加密技术,密码主机认证 及完整性保护,

该协议中认证基于主机,并且该协议不执行用户认证,更高层的用户认证可以设计为此协议之上

*用户认证协议【SSH-USERAUTH】

用户向服务器提供客户端用户鉴别功能,它运行在传输层协议SSH-TARNS上面 ,当SSH-USERAUTH开始后,它从底层协议那里接受会话标识符,会话标识符唯一标识会话并且适用于标记已证明私钥的所有协议,SSH-USERAUTH也需要 知道底层协议是否提供保密性保护。

*连接协议【SSH-CONNECT】

将多个加密隧道分成逻辑通道,它运行在用户认证上,提供了交互式登录,远程命令执行,转发TCP/IP连接

authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥

  id_rsa : 生成的私钥文件

  id_rsa.pub : 生成的公钥文件

  know_hosts : 已知的主机公钥清单

    如果希望ssh公钥生效需满足至少下面两个条件:

      1) .ssh目录的权限必须是700 

     2) .ssh/authorized_keys文件权限必须是600

【实验案例】

将两台机器开通SSH,最终是的三台机器可以互相免密远程登录

[zhangsan@Joyheros-iPhone ~]$ ssh-keygen -t rsa

[xiaoyu@localhost ~]$ ssh-keygen -t rsa

我们要想免密登录xiaoyu这台机器,我们需要将自身的公钥发给对方特定的目录下(.ssh/authorized_keys)

# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.20.138

或者

[zhangsan@Joyheros-iPhone .ssh]$ scp id_rsa.pubxiaoyu@192.168.20.138:/home/xiaoyu/.ssh/authorized_keys

[zhangsan@Joyheros-iPhone .ssh]$ ssh xiaoyu@192.168.20.138

Last login: Mon Jun  5 23:17:42 2017 from 192.168.20.167

[xiaoyu@localhost ~]$     #免密登录成功

同理!我们从xiaoyu这台机器上免密登录zhangsan这台机器,也是生成公私密钥之后,将自己的公钥给对方zhangsan主机

[xiaoyu@localhost .ssh]$ scp id_rsa.pub zhangsan@192.168.20.167:/home/zhangsan/.ssh/authorized_keys

[xiaoyu@localhost .ssh]$ ssh zhangsan@192.168.20.167

Last login: Mon Jun  5 22:52:33 2017

[zhangsan@Joyheros-iPhone ~]$#免密登录成功

PS:当我们需要免密登录对方机器时,需要在对方的sshd_conf配置文件中开启密钥验证的权限如下:

vim /etc/ssh/sshd_config

ps:后续普通目录下的~.ssh的权限为700权限,而公钥的权限为600

后续拷贝公钥时即可执行# ssh-copy-id -i /root/.ssh/id_rsa.pub 【目标主机名&&IP地址】

SSH免密远程登陆及详解的更多相关文章

  1. L07-Linux配置ssh免密远程登录

    本文配置可实现:集群服务器之间相互可以ssh免密登录.若只想从单一机器(如master)ssh免密登录其他机器(slave1.slave2),则只跟着操作到第二步即可. 建议先花两三分钟把全文看完再跟 ...

  2. Shell 编程中,在循环里使用ssh免密远程执行命令的注意事项

    前提:给自己机器配置ssh免密登录#!/bin/bashcat << 'EOD' > list1234EOD while read linedo if ssh myname@127. ...

  3. Linux免密远程登陆

    上一节讲到伪分布式部署,启动后需要输入4次密码,停止服务后也要输入4次密码.本节记录免密登陆原理和实践 假设有2台服务器(A和B)(这是配置原理) 1)A需要远程登录B服务器,那么A就要创建密钥对(私 ...

  4. 利用系统自带工具快速实现SSH免密远程登录

    一.软件环境 操作系统:CentOS Linux release 7.4.1708 (Core) SSH版本 [root@Geeklp201 ~]# ssh -V OpenSSH_7.4p1, Ope ...

  5. SSH免密码登录配置方法详解

    1.测试主机配置信息: 192.168.100.236 db06.chavin.king db06 192.168.100.237 db07.chavin.king db07 2.创建测试用户: gr ...

  6. Linux下配置ssh免密远程登录

    步骤 使用ssh-keygen生成密钥对 提示要求输入保存的位置,密码等信息.全部使用默认信息即可 使用ssh-copy-id user@host将公钥拷贝到需要免密登录的服务器的账户中. 例如,需要 ...

  7. SSH免密登录详解

    SSH免密登录详解 SSH(Security Shell)安全外壳协议,是较为可靠的,专为远程登录会话和其他网络服务提供安全保证的协议. ​ 对于传统的网络服务程序(例如,FTP,Telnet等)来说 ...

  8. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-2设置SSH免密登录

    因为hadoop集群在安装的时候需要集群中所有机器的权限. 所以我们需要打通所有节点的ssh无密码登陆,思路是生成每台机子的密钥,集中在一个文件中,再分发到每台机子上. 为了确保下面的命令能顺利执行, ...

  9. ssh免密登陆及时间设置

    1.ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa // 在自己主机生成私钥和公钥 2.scp id_rsa.pub centos@s201:/home/centos ...

随机推荐

  1. boost.Asio lib

    Documentation for Boost.Asio http://www.boost.org/doc/libs/1_62_0/doc/html/boost_asio.html https://w ...

  2. Oauth2.0 QQ&微信&微博实现第三方登陆

    一.写在前面 目前对于大多数的App或Web网站都支持有第三方登陆这个功能,用户可使用 QQ/ 微信/ 微博 帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户.最近在新项目上刚好用到了,在 ...

  3. Confluence 6 指定日志选项和已知问题

    指定 Confluence 日志选项 这里是一些特定的日志配置,你可能在对问题进行调试的时候需要. 在日志中记录数据库使用的 SQL 查询请求 你可能希望增加日志的中的内容,记录 Confluence ...

  4. Confluence 6 为空白空间编辑默认主页

    希望编辑默认(空白)空间内容模板: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration 链接. 在左侧的面板中选择 全局模板和蓝图(Global Templates ...

  5. requests 的基本用法

    r = requests.get('www.baidu.com') r.request.headers{'User-Agent': 'python-requests/2.18.4', 'Accept- ...

  6. Best Free Hacking E-Books 2017 In PDF Format

    1.Best Free Hacking E-Books 2017 In PDF Format: 电子书籍下载地址 后续我会更新在我的百度云资源 上,需要的留言Black Belt Hacking &a ...

  7. 学习REST

    REST:Representational State Transfer,资源的表现状态转换.可以理解为对资源的操作.   1. 资源 资源就是业务对象,如图片.文本.歌曲或者客户.交易等.这些是用户 ...

  8. 饮冰三年-人工智能-linux-06 系统启动流程及安全

    系统启动流程 BOIS(Basic Input/Output System)基本输入输出系统:硬件和软件之间的接口,而且是很基本的接口. grub(Grand Unified BootLoader)多 ...

  9. 步步为营-89-SQL语句(删除重复数据)

    1:删除重复数据 --第一步:先找到重复数据 select ProcInstID from record_errorlog group by ProcInstID having count(ProcI ...

  10. Lua中,泛型for循环遍历table时,ipairs和pairs的区别

    为了看出两者的区别,首先定义一个table: a={"Hello","World";a=1,b=2,z=3,x=10,y=20;"Good" ...