zoukankan      html  css  js  c++  java
  • ssh免密码登录、secureCRT免密码登录详解

    再放一张真机实现图:

    接下来就详细讲述实现细节。

    实现过程中吃了不少苦头,这个不对,那个不通。好在慢慢一点点摸索出来了,经验分享在这里。

    希望能终结网上ssh免密码登录,以及SecureCRT免密码登录的问题。如有错误,欢迎指出!转载请注明出处,谢谢!

    首先,明确一个目的:各主机之间免密码登录、CRT免密登录其他主机。直接输入ssh 主机名,就能直接登录到指定的主机上。为什么上述没有实现Master与其他主机间的免密码登录?是为了跟免密登录作一个对比。好,闲言少叙,先看第一个话题,各主机间的免密登录。

    准备工作:

    使得各主机之间可以将IP地址解析为主机名。本文所配置的严格按照上述图片所配置。一定根据需要自己改动。由于我最初的目的是搭建Hadoop集群,需要3个节点,一个master,两个slave。所有这里三台主机名就为master、slave1、slave2。

    为了方便,三台主机都创建了一个Hadoop用户。

    创建Hadoop用户

    root用户下,centos7切换用户的命令是su。

    useradd Hadoop

    passwd Hadoop

    输入两次密码:

    123456

    123456

    配置主机名

    root用户下

    vi /etc/hostname

    将原来的主机名删除,分别换成master、slave1、slave2

    配置hosts文件

    root用户下

    vi /etc/hosts

    每台主机的hosts信息下都写上

    192.168.84.130        master

    192.168.84.131        slave1

    192.168.84.132        slave2

    至此,准备工作完成!

    slave1与slave2的免密码登录

    当准备工作完成后,做一下两个检查。(非必须)

    1.关闭防火墙。

    2.开启ssh服务。

    1.关闭防火墙。

    CentOS7下关于防火墙的命令可能跟以前版本略有不同。

    systemctl stop firewalld.service #停止firewall

    systemctl disable firewalld.service #禁止firewall开机启动

    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

    当显示notrunning时,即关闭成功!

    2.开启ssh服务。

    systemctl start sshd.service  #开启ssh服务

    sytemctl enable sshd.service #ssh服务随开机启动,还有个disabled

    systemctl status sshd.service #查看ssh服务的状态

    #systemctl restart sshd.service

    当现实Active:active(running)时,ssh服务开启成功。

    完成这两个检查后,接着进行下一步工作。

    在slave1上生成密钥对

    切换到Hadoop用户下,cd 到家目录。

    ~$ssh-keygen -t rsa -P “”

    此时就在/home/Hadoop/.ssh 下生成了一对密钥对。

    id_rsa、id_rsa.pub。分别是本机的私钥和公钥。

    再把公钥增加到认证的密钥环中。

    cd 到.ssh目录

    $cat id_rsa.pub >> authorized_keys

    注:(1)这里的.ssh文件夹是隐藏的。直接cd .ssh即可。

    也可以用ls -a 查看隐藏的文件夹以及文件。

    (2)这里authorized_keys 这个名字最好就这么命名,因为配置文件中默认是这个。

    修改ssh配置文件

    切换到root用户

    vi /etc/ssh/sshd_config#修改之前可以先做一下备份。

    #cp /etc/ssh/sshd_config /home/Hadoop/backup/#这里路径自己选择

    找到下面5项

    PermitRootLogin yes

    UsePAM   yes

    PasswordAuthentication yes

    Authentication yes

    PubkeyAuthentication yes

    这5项如果前面有#号注释,首先去掉注释。

    接着,前三项的yes全部修改为no,后面两项的不变。修改完后的5项应该为

    PermitRootLogin no

    UsePAM   no

    PasswordAuthentication no

    Authentication yes

    PubkeyAuthentication yes

    保存!

    接着

    重启ssh服务

    systemctl restart sshd.service。

    同理,在slave2上做相同的操作。即生成密钥对以及修改ssh配置文件。(现在是笨方法,熟悉操作步骤,熟练了之后,可以直接复制修改过的文件。)

    接下来(重要):

    把slave1中authorized_keys 文件内容复制到slave2中的authorized_keys中。

    保险的方法是先将slave1中的authorized_keys复制到slave2中的其他文件夹中,如Downloads文件夹。之后再添加,下面就是这么做的。

    scp authorized_keys Hadoop@slave2:/home/Hadoop/Downloads/

    这句句命令的解释scp authorized_keys Hadoop@slave2:/home/Hadoop/Downloads/

    是将salve1中的authorized_keys 文件复制到slave2中的/home/Hadoop/Downloads/文件夹。

    scp 是本地与远程主机间的复制命令

    authorized_keys 是本地文件

    Hadoop@slave2:/home/Hadoop/Downloads/    用户名@主机名:路径

    附:scp还可以带参数。(自行查找)

    切换到主机slave2中:

    cd ~/.ssh

    cat ~/Downloads/authorized_keys authorized_keys

    第一句命令是切换到.ssh 目录

    第二句是将~/Downloads 目录下的Authorize_keys文件中的内容,追加到本目录下authorized_keys文件中。

    此时,slave2的authorized_keys就同时有了salve2的公钥和slave1的公钥。

    将slave2中的authorized_keys以同样的方式复制到salve1中,这是就不用考虑覆盖的问题了。

    scp authorized_keys Hadoop@slave1:/home/Hadoop/.ssh/

    至此,slave1与slave2能够互相免密码登录。

    在slave1上,切换到Hadoop用户下,直接输入ssh slave2.即可登录到slave2中。同理slave2也以相同方式可以登录到slave1中。

    如果出现问题,修改.ssh以及authorized_keys 的权限。

    chmod 700 ~/.ssh

    chmod 644 ~/.ssh/authorized_keys

    具体见另一片博文:

    链接:http://www.cnblogs.com/xubing-613/p/6844564.html

    ssh免密码登录Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 的解决方案!

    接下来是如何配置secureCRT的免密码登录这两台主机。先去吃饭,留着晚上或者明天更新!

    如有错误,欢迎指出,不胜感激!

  • 相关阅读:
    Hibernate+JPA (EntityMange讲解)
    JPA和Hibernate的区别
    Hibernate与Jpa的关系,终于弄懂
    JEE学习线路
    J2EE中你必须了解的13种技术规范
    js设置datagriad的行移动
    js正则表达式中的特殊字符
    iOS 开发之动画篇
    Phone APP设计规范/iPad APP设计规范/Android APP设计规范/网页设计规范
    打包程序时的证书问题(上传APP就出现Missing iOS Distribution signing indetity for)
  • 原文地址:https://www.cnblogs.com/xubing-613/p/6846451.html
Copyright © 2011-2022 走看看