专栏首页运维技术迷linux配置ssh互信实现免密登陆

linux配置ssh互信实现免密登陆

公钥认证的基本思想

对信息的加密和解密采用不同的key,这对key分别称作private key(私钥)和public key(公钥),其中,public key存放在欲登录的服务器上,而private key为特定的客户机所持有。当客户机向服务器发出建立安全连接的请求时,首先发送自己的public key,如果这个public key是被服务器所允许的,服务器就发送一个经过public key加密的随机数据给客户机,这个数据只能通过private key解密,客户机将解密后的信息发还给服务器,服务器验证正确后即确认客户机是可信任的,从而建立起一条安全的信息通道。通过这种方式,客户机不需要向外发送自己的身份标志“private key”即可达到校验的目的,并且private key是不能通过public key反向推断出来的。这避免了网络窃听可能造成的密码泄露。客户机需要小心的保存自己的private key,以免被其他人窃取,一旦这样的事情发生,就需要各服务器更换受信的public key列表。

配置ssh互信的步骤如下

  • 1. 首先,在要配置互信的机器上,生成各自的经过认证的key文件;
  • 2. 其次,将所有的key文件汇总到一个总的认证文件中;
  • 3. 将这个包含了所有互信机器认证key的认证文件,分发到各个机器中去;
  • 4. 验证互信。

需求:四台Linux主机,IP地址为192.168.8.10/11/12/13,配置登录用户的互信。 在每个节点上创建 RSA密钥和公钥(以root用户为例):

mkdir ~/.ssh # 创建ssh key保存目录,如果已存在请护绿
chmod 700 ~/.ssh  # 安全起见,除属主用户外其他用户和组都不能访问
cd ~/.ssh  # 进入.ssh目录
ssh-keygen -t rsa  或者 ssh-keygen -q -t rsa  -N "" -f  ~/.ssh/id_rsa  # 使用rsa加密

在8.10上汇总,将所有的公钥文件汇总到一个总的授权key文件中:

ssh -p 2016 192.168.8.10 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh -p 2016 192.168.8.11 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh -p 2016 192.168.8.12 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh -p 2016 192.168.8.13 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

出于安全性考虑,将这个授权key文件赋予600权限:

chmod 600 ~/.ssh/authorized_keys

在8.10上将这个包含了所有互信机器认证key的认证文件,分发到各个机器(8.11/8.12/8.13)中去

scp ~/.ssh/authorized_keys  192.168.8.11:~/.ssh/
scp ~/.ssh/authorized_keys  192.168.8.12:~/.ssh/
scp ~/.ssh/authorized_keys  192.168.8.13:~/.ssh/

验证互信,各节点执行下面命令,能不输入密码显示时间,配置成功

ssh 192.168.8.10 date;ssh 192.168.8.11 date;ssh 192.168.8.12 date;ssh 192.168.8.13 date;
Tue Aug 29 22:38:06 CST 2017

参考资料: Alfred Zhao:http://www.cnblogs.com/jyzhao/p/3781072.html 撒哈拉企鹅:http://blog.chinaunix.net/uid-16979052-id-3568036.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux下重命名文件或文件夹使用mv既可实现。

    linux下重命名文件或文件夹使用mv既可实现。 例子: ①将一个名为abc.txt的文件重命名为1234.txt [root@station90 root]#...

    学到老
  • linux (ubantu)安装最新版python3.6,以及直接安装anaconda

    用Linux自带的下载工具wget下载(当前的最新版本python3.6.0),进入个人用户下面的Downloads下 cd ~/tmp/ wget https...

    学到老
  • Linux一揽子问题

    疑惑一 如何才能接触到linux? 桌面系统window的天下,各种软件应有尽有,不用它用谁?linux都这么些年了也没发展到大范围使用。window你点鼠标就...

    程序员互动联盟
  • Linux初学者要善于利用“男人(man)”

    对于Linux初学者,常常有很多命令和函数的用法不清楚,现在网络发达了,什么命令和函数都可以Google和百度。其实不用网络,在Linux下就有这些使用秘籍,要...

    程序员互动联盟
  • Linux现严重安全漏洞

    GnuTLS库中的一个源代码错误可能证明是对Linux用户隐私的一个严重威胁,因此开发者紧急修复这个安全漏洞。GnuTLS库是大量的不同Linux发布版软件...

    静一
  • 为什么Linux这么受欢迎?

    为什么要学习Linux? 为什么学Linux,每个人都有自己的理由: Linux是免费的不用花一分钱,能够节约大笔的成本; Linux是开源的,你可以根据自已的...

    程序员互动联盟
  • linux下编辑VI窗口插入与编辑命令

    前言 在嵌入式linux开发中,进行需要修改一下配置文件之类的,必须使用vi,因此,熟悉 vi 的一些基本操作,有助于提高工作效率。 一,模式 vi编辑器有3...

    学到老
  • 使用expect运行动态脚本(r6笔记第19天)

    在平时的工作中,如果接手的环境多了之后,每天去尝试连接服务器,都是例行的步骤,时间长了之后就会感觉这些工作都是繁琐重复的工作,其实我们可以尝试让工作更简化,更高...

    jeanron100
  • day01.互联网架构/Linux/YUM 【大数据教程】

    day01.互联网架构/Linux/YUM 一、大型互联网架构演变历程 1. 淘宝技术这10年 1.1. 淘宝现状 高并发已经成为当前互联网企业面临的巨大挑...

    奋斗蒙
  • 【记忆卡片】linux常用的5个命令

    玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券