openssl pem转cer/der,p12,crt格式
在大数据运维当中,如HADOOP,Storm等,各节点需要相互通信,正常情况下Linux通信需要提供用户名和密码,如果每次都人工干预输入用户名密码,这样显然是非常不方便的,为了方便个节点通信,我们经常会用到SSH免密登陆,让各节点自动通过安全认证,不影响正常通信.本文将以Ambari两天测试主机为例,进行演示.
一 环境准备
1).操作系统:
Centos6.5 mini版
2).网络环境
主机名称 IP地址
ambariserver 192.169.199.152
ambariagent 192.168.199.199
在hosts下做好相应配置
二 主要配置
2.1 在ambariserver上生成公.私钥对.
以 root(或者其他用户,本文以root用户为例)身份登录到系统
cd #进入用户主目录.(/root目录,其他用户默认在/home/username 目录下)
ssh-keygen -t rsa -P ''
# 注:最后是两个单引号
即:以rsa算法,生成公钥、私钥对,-P ''表示空密码。该命令运行完后,会在个人主目录下生成.ssh目录,里面会有二个文件id_rsa(私钥) ,id_rsa.pub(公钥)
2.2导入公钥
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
执行完以后,可以在本机上测试下,用ssh连接本机:ssh localhost (或ssh ambariserver),如果还是提示要输入密码,说明还没起作用,还有一个关键的操作
chmod 600 .ssh/authorized_keys # (修改文件权限,否则不起作用)
然后再测试下 ssh localhost ,如果不需要输入密码,就连接成功,表示已完成一台主机的设置.
2.3在ambariagent主机生成密钥,并复制到ambariserver主机
已root用户登录主机
cd #切换到主目录下
ssh-keygen -t rsa -P '' #和2.1步相同,生成无密码的公钥、密钥
通过scp命令,把公钥文件发放给ambariserver(即:刚才已经做好的那台机器)
scp /root/.ssh/id_rsa.pub root@ambariserver:/root/.ssh/id_rsa_01.pub
这样执行完成后,此台主机已完成操作.我们返回ambariserver主机
将ambariagent主机密钥导入:
cat /root/.ssh/id_rsa_01.pub >> /root/.ssh/authorized_keys #更多的机器重复此步.导入id_rsa_02 03 04....pub
这样,ambariserver这台机器上,就有所有主机的公钥了。
2.4将ambariserver上最全的公钥复制到其他机器
继续在ambariserver主机上执行命令
scp /root/.ssh/authorized_keys root@ambariagent:/root/.ssh/authorized_keys
修改其它机器上authorized_keys文件的权限
在ambariagent主机执行命令:
chmod 600 /root/.ssh/authorized_keys
至此,全部配置已完成
三.验证
在每台主机上,均用 ssh 连接其它机器的hostname,如果能正常无密码连接成功,表示全部操作成功.
小结:SSH免密登陆主要思路是在各节点上生成公钥、私钥,然后将公钥发放其它所有节点。RSA算法是非对称加密算法,仅公布“公钥”,只要私钥不外泄,还是不能解密的,所以安全性依然有保障。
如果本步骤失败,根据个人经验,多半是权限问题,请检查用户是否具有足够权限。另外,这里也整理了一些SSH免密码设置失败的原因,请移步 ssh 免密码设置失败原因总结
精彩评论