ssh免密登录配置+调试讲解(超详细)+原理解析

有写的不对的地方,欢迎各位同学评论指正,博主会进行修改。



集群搭建中,常常需要配置ssh免密登录,而每台机器情况不一样,本来博主认为没多少东西,结果,博主第一次配时候没多久就Ok了,然后,第二次,第三次就卡住了,并且,博主发现,网上很多ssh免密,你可能搜到三篇,三篇都不一样!而且噼里啪啦按部就班操作之后,无从验证,只是最后会发现出错了。。。。

今天,博主第三次配置ssh,并且搜全了各种情况,然后外加出错后怎么找原因,就像调试程序一样,保证出手的东西绝对正确。



1、环境说明

环境就不进行说明了,比较三次配置,一个配过九台,每每情况各有不同。只能告知各位读者,博主这里使用的是red hat红帽,估计centOS也差不太多,不过有差异也无妨,学会博主方法,相信你就不会蒙蔽了,知道怎么往对的方向走了







2、场景说明

要求node1免密登录到node2,这里任选了一个用户,也即是
[hadoop@node1 .ssh]$ ssh node2












3、ssh登录原理过程


这里看不懂也没关系,楼主详解一番:

node1发送一个请求,问:node2,你在不在?我想连接你
node2查找本地是否有node1的公钥,情况一:没有,情况二:有

情况一:
node2回复说:我在!你的公钥告诉我一下。
node1再次发送过去,自己的公钥,
node2在本地进行计算,存储,得到的一串通过公钥得到的不知道什么钥,返回给node1,说:你看看对不对
node1告知node2:对!咱们已经建立连接了
node2警惕的回复node1:你知道我登录密码多少吗?
用户输入密码.....
node1把密码封装了发过去:你看是这个不?
node2回复:对,咱们已经建立连接!

情况二:
node2一看本地有node1的公钥,心想原来认识的,然后通过公钥计算出一个不知道什么钥匙,回复:你看看是这个钥匙吗?
node1告知node2:对!咱们已经建立连接了
node2回复node1:连接建立成功!


具体几次握手,博主不知道,大致就是这么个过程


ssh配置中,会用到下面几个文件:

恩~毫无PS痕迹。。。

1、需要在node1上生成公钥以及私钥,而id_rsa就是私钥,id_rsa.pub文件就是公钥文件。私钥我们这里就不用了,就用公钥,用完了为了保证安全性,你可以选择删掉,也可以不删,根据你的喜好决定,也就是pub文件

2、authorized文件,是为了方便node2的,不用询问node1的公钥本地文件,这个单词读者们需要记住,要建立这个文件!

3、known_hosts,表名node2是认识的主机,这个不用配置,读者可以不用管,可以作为了解原理。比如,一台新系统,.ssh目录下你会发现没有这个文件,但在你第一次ssh以后,这个文件就会生成。



简单说明:
              上面做了原理说明,简单来说:就是node1想要连接node2免密登录node2,需要把node1的id_rsa.pub文件内容写进node2的authorized_keys里面。就大功告成了






4、最简单配置

4.1、生成公钥以及密钥:

在node1上:
[hadoop@node1 ~]$ ssh-keygen -t rsa
一路回车。

若是不想回车,可在上面代码末尾加上,-P ""

4.2、处理

方法一:

将node1的公钥拷贝到node2

node1上(小心别把node2的id_rsa.pub覆盖掉)
[hadoop@node1 .ssh]$ scp -p id_rsa.pub hadoop@node2:~/.ssh/id_rsa.pub1




然后,node2将公钥加入自身认证

在node2上:
[hadoop@node1.ssh]$ cat id_rsa.pub1 > authorized_key

验证查看文件authorized_key中是否有id_rsa.pub1文件的内容


方法二:

直接把自己密钥拷贝到需要免密的机器上:

ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@ip
将密钥文件直接拷贝到指定用户名、ip。输入密码后,下次你当前用户执行ssh到刚刚指定的用户名ip就不用再输入密码了。


方法二较方法一方便很多


4.4、验证:node1连接node2

在node1上:
[hadoop@node1 .ssh]$ ssh hadoop@node2
楼主这里没有截图,不用输入密码发现主机名变了即为成功











5、调试及常规报错解决

5.1、说明

     系统日志:/var/log/secure,是个不知道干什么用的日志。ssh连接失败的报错,在这里记录







5.2、报错


解决:相关目录权限不对,一下列出相关权限。读者根据具体去修改
       1、755                ~
       2、700                ~/.ssh
       3、644                ~/.ssh/authorized_keys(博主实测,600也可,具体的读者试试也就知道了,也不麻烦)








配置文件选项未开(无图)

这里楼主没有碰到过,所以没有图,各位读者碰到修改了就好
解决: vi    /etc/ssh/sshd_config


这三项需要注释掉,按博主图片中这样就好。





调试中若是还有其他情况,博主并未遇过,读者可根据报错进行百度
















博文不仅仅是防止知识点忘记,也是回馈众多作者们的教导,以此回馈社会

  • 10
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值