Centos Linux系统配置SSH免密登录

首先修改host,将需要互相免密的机器相互加入到host文件中:

vi /etc/hostname #添加主机名

hadoop2

vi /etc/sysconfig/network #添加IP和hostname对应关系

192.168.8.107  hadoop2

重启reboot生效

  1. 查询本机是否有安装ssh包

    rpm -qa|grep ssh

    如果没有则安装ssh                                                                                                                   

    yum -y install sshd #(yum install openssh-server) 安装ssh服务

  2. 修改ssh配置文件(启用22端口)

    vi /etc/ssh/sshd_config
    ​
    #重启ssh服务
    systemctl restart sshd

  3. 开放防火墙22端口为公开

    firewall-cmd --zone=public --add-port=22/tcp --permanent
    ​
    重启防火墙
    systemctl restart firewalld.service
    ​
    重新载入配置
    firewall-cmd --reload
    ​
    查看 public 区域下所有已打开的端口
    firewall-cmd --zone=public --list-ports

  4. 每台机器生成密钥

    ssh-keygen -t rsa

    一路回车啥都不要输入

  5. 第四步操作后会在你当前用户的home文件夹下生成一个隐藏文件夹.ssh

    #快速回到home
    cd ~
    #查看隐藏文件夹
    ls -a
    cd .ssh

  6. 将公钥写入authorized_keys

    cat id_rsa.pub >> authorized_keys
    sudo chown root:root authorized_keys
    #这一步是对权限进行修改,777为最高权限,这一步可改为777以免报权限不够的错误
    sudo chmod 600 authorized_keys 

    将authorized_keys传输到其他的服务器对应的.ssh文件夹下,将对应的id_rsa.pub用同样方式写入,最后保证每台机器都有其余服务器的公钥

    scp -r authorized_keys root@slave1:/root/.ssh

  7. 重启ssh后看是否能免密登录其他服务器

    #重启ssh后在hadoop1上ssh远程免密hadoop2(第一个hadoop2是用户,第二个是hadoop1的host里配置的hadoop2,对应的是ip映射)
    ssh hadoop2@hadoop2 
    #语句等于下面语句
    ssh [email protected]
    #成功后exit退出
    #如果提示要输入密码,请重复上一步修改文件夹和文件属性

你可能感兴趣的:(hadoop,linux,服务器,ssh,linux)