欢迎光临
一直在努力

Linux/Centos配置SSH免密登陆

在大数据运维当中,如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 免密码设置失败原因总结

本站文章均为原创,转载请注明出处:运维资源 » Linux/Centos配置SSH免密登陆
微信 OR 支付宝 扫描二维码
为本文作者 打个赏
pay_weixinpay_weixin
如果您认为本网站的教程质量不错,读后觉得收获很大,不妨额赞助一下,让我有动力继续写出高质量的教程

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址