Linux-ssh双端认证

在CRM+的上线过程中,由于涉及到上千个域的文件同步、命令发送等,又考虑到有安全隐患,所以设置了一个堡垒机。

通过ssh的双端认证后(我们只做了单端),可以通过堡垒机免密登录其他上千台Linux机器中,进行执行命令同步文件等。个人感觉还是有一定用途的,分享一下操作步骤。

一、概述:

双端认证(互信)的概念:就是为了让两个linux机器之间使用ssh跳转不需要用户名和密码。采用了数字签名RSA或者DSA来完成这个操作,加密方式选 rsadsa均可以,默认dsa。

二、Linux-ssh双端认证操作步骤:

如果机器上没有安装SSH,需要先进行安装,执行如下命令。

centos:yum -y install ssh

ubuntu:sudo apt-get install openssh-server

登录机器A

机器A上执行命令:ssh-keygen -t [rsadsa] -P '',将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub

-t表示key的类型,rsa表示key类型 -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三次回车,用-P就一次回车。运行完之后在/home/comodo/.ssh目录下生成私钥id_rsa和公钥id_rsa.pub。对这个目录说明,是什么用户执行就在什么用户下,如果是crmsca1,那么就是/data/crm/crmsca1/.ssh目录下。

将PC_A主机下的公钥id_rsa.pub复制到PC_B机下

scp id_rsa.pub root@172.0.1.140:/home/comodo/id_rsa.pub

将PC_B主机上的公钥添加到/home/comodo/.ssh/authorzied_keys之中

cat id_rsa.pub >> /home/comodo/.ssh/authorized_keys

chmod 600 /home/comodo/.ssh/authorized_keys 和 chmod 700 -R .ssh

PC_A机登录PC_B机 ssh 172.0.1.140

在.ssh这个目录下,会生成一个known_hosts文件,不用管他,这个是第一次登录这个机器会输入yes/no那种提示信息生成的。

如果想实现双端认证,只需要在机器B上生成公钥,然后重复上述4-9操作即可。

三、总结和补充:

文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持。如果文件权限中,除owner权限外还有w权限,这时双端认证就会失败。

生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝到authorized_keys

ssh 会把每个你访问过的计算机的公钥(public key)都记录到~/.ssh/known_hosts文件中,当你下次访问该计算机时,openss会核对公钥。如果公钥不同,那openssh就会发出警告,避免你收到DNSHijack等攻击。

补充:

jenkins master和slave通信的方式:

将master的public key拷贝到slave的~/.ssh/authorized_keys中,将slave 的 private key 保存到master上某ppk文件中。

jenkins将会自动地完成其他的配置工作,例如copy slave agent的binary,启动和停止slave。

一个简单的Linux-ssh技巧,欢迎分享讨论。

今晚写这个的时候,心情很复杂,内心的波涛汹涌,外界的鸡毛蒜皮。

分享技术

享受生活

一方素笺丶萦思念

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180210G024N700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券