SSH免密登录配置是在Linux环境下配置服务器间的无密码访问,以实现自动化脚本执行、服务之间的安全通信等。在Hadoop环境搭建中,免密登录是常用的配置步骤,因为Hadoop集群中的多个服务组件(如NameNode、DataNode)通常需要进行相互访问。下面将详细介绍SSH免密登录配置的过程及涉及的关键知识点。 1.配置/etc/hosts文件:在Linux系统中,/etc/hosts文件用于指定主机名与IP地址的映射关系。在进行SSH免密登录配置前,需要确保所有需要进行免密登录的服务器在/etc/hosts文件中正确配置了彼此的主机名和IP地址。如文档中所述,使用root用户编辑/etc/hosts,添加相应的IP和名称映射。 2.检查SSH服务是否安装:普通用户需要检查系统是否已安装SSH服务。这里使用命令rpm –qa | grep ssh来查看所有已安装的软件包,以确认是否已安装SSH服务包。 3.重启SSH服务:在配置过程中,可能需要重启SSH服务使新的配置生效。通常使用root权限执行service sshd restart或systemctl restart sshd.service命令来重启SSH服务。 4.生成密钥对:使用ssh-keygen命令生成公钥和私钥对。命令中的-t选项指定了密钥类型,这里是rsa。生成密钥时,连续按三次回车键,将使用默认路径和默认文件名生成密钥。密钥对默认存放在用户的~/.ssh目录下。 5.查看生成的密钥文件:可以通过ls命令查看~/.ssh目录下生成的密钥文件,默认情况下,私钥文件名为id_rsa,公钥文件名为id_rsa.pub。 6.复制公钥到远程机器:生成密钥对后,需要将公钥文件id_rsa.pub的内容复制到所有需要免密登录的远程服务器的~/.ssh/authorized_keys文件中。这一步是实现免密登录的关键。 7.修改authorized_keys文件权限:使用chmod命令修改authorized_keys文件的权限为600,这意味着只有文件所有者可以读写该文件。这样做是为了保证安全性,防止未授权访问。 8.传输公钥到远程机器:将本地的公钥复制到远程机器的过程,通常是通过SSH命令或者SCP(Secure Copy)命令来完成。将公钥内容追加到远程机器的authorized_keys文件中。 9.修改SELinux配置:为确保SSH免密登录配置能够生效,可能需要临时关闭SELinux(Security-Enhanced Linux)。使用root用户编辑/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled,并重启系统或重启SELinux服务,使得配置生效。 10.修改sshd_config配置文件:配置文件/etc/sshd_config用于设置SSH守护进程的参数。在其中设置允许免密登录的设置,比如修改PasswordAuthentication为no,确保SSH仅接受密钥认证。 11.重启sshd服务:修改配置文件后,需要重启sshd服务,以使新的配置生效。使用/etc/rc.d/init.d/sshd restart命令进行重启。 12.测试免密登录:配置完成后,普通用户应该能够在不输入密码的情况下,直接登录到远程服务器。使用ssh命令测试从Slaves机器登录到Master机器是否能够成功。以上步骤包含了在搭建Hadoop环境过程中配置SSH免密登录的关键知识点。需要注意的是,操作过程中涉及到文件编辑、文件权限修改、系统重启以及安全策略调整等操作,应由具有相应权限的用户执行。同时,在配置过程中,保证每一步操作正确执行和验证是至关重要的,以避免安全风险和配置错误。