CentOS配置ssh无密码登陆

前提配置:使用root登陆修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,以下: 安全

而后重启ssh服务:service sshd restart。最后退出root,如下全部操做都在hadoop用户下进行网络

主机信息以下: ssh

如上图,当前登陆用户为hadoop,主机名为slave.hadoop,与master.hadoop主机的网络是通畅的。 oop

当前未配置RSA校验的状况下,用ssh链接主机是须要输入密码的,以下: spa

如上图,执行ssh master.hadoop后会停留在下一行等待使用者输入master.hadoop主机hadoop用户的登陆密码。 rest

为避免此状况发生,进行以下操做以让主机在ssh链接时自动验证后登陆。 hadoop

首先,执行命令 ssh-keygen -t dsa 生成密钥对,以下: ast

 

如上图,密钥文件按照默认方式,在主目录/home/hadoop下的隐藏目录.ssh中生成,分别为id_dsaid_dsa.pub,后者为公钥,以下图: 登录

根据配置文件/etc/ssh/sshd_config中的AuthorizedKeysFile项的取值:.ssh/authorized_keys,公钥须要导入到该文件中才能实现校验,以下: 配置

至此离成功只有一步之遥了。CentOS默认新生成的文件权限为:-rw-rw-r--,即本身和群组用户均可以重写该文件,这被认为是不够安全的。如上图,因为此前个人主机上并未存在authorized_keys文件,如今因为重定向输出新建了该文件,所以该文件的默认权限为-rw-rw-r--仍旧不够安全。需把群组中的w权限去掉。可以使用命令:chmod 644 authorized_keys。网上的资料中,都是直接chmod 600 authorized_keys,即群组和其余用户连读取文件内容的权限都没有,固然这样是最安全的,可是系统只要求到除了本身以外其余全部用户均不能改动文件就能够了。

如上图,slave.hadoop已经可以使用ssh无密码登陆本机了。那么如何让它无密码登陆到Master.hadoop主机中呢?固然是分发公钥文件id_dsa.pub的内容到master.hadoop主机上了。以下图:

如上图,执行命令 cat ~/.ssh/id_dsa.pub | ssh hadoop@master.hadoop 'cat - >> ~/.ssh/authorized_keys',并输入master.hadoop主机的hadoop用户的登陆密码,便可将公钥发送到master.hadoop并追加到其authorized_keys文件中。

如上图,已经能够在slave.hadoop主机使用ssh无密码登陆主机master.hadoop了。

相关文章
相关标签/搜索