• SSH免密码登录快速配置方法


           SSH为Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所制定;SSH为建立在应用层传输层基础上的安全协议。当我们需要在主服务器通过以无密码的方式远程登录到从服务器时,可以通过公钥认证原理来实现。而所谓的公钥认证原理,实际上是使用一对加密字符串,一个称为公钥(public key),任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。SSH 的公钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。接下来,我们就来完成一个简易的免密码登录方式。

          首先,我们先确定下实验环境:主服务器(nodep1):59.64.156.186,从服务器1(nodep0):59.64.156.33,从服务器2(nodep2):59.64.156.32。现在我们需要实现的功能便是通过在主服务器(nodep1)里,每次都无需通过输入密码的方式快速登录到从服务器1和2中。当然严格意义上来说,是除了第一次登录到从服务器里时需要输入密码外的每一次。因为首次登录时,ssh是需要输入密码进行验证的。

         第一步:在主服务器中生成公密钥。输入如下命令:$ ssh-keygen –t rsa,回车运行后,只要要求输入时都是以回车结束(狂按enter键吧),直到完整生成公密钥,实际运行如下图:

    1

    生成公密钥后,敲入命令:$ cd .ssh,进入.ssh文件夹中,然后再将公钥拷贝到authorized_keys文件中:$ cp id_rsa.pub authorized_keys,实际运行如下图:

    2

          第二步:将主服务器的公钥拷贝到从服务器1和2中,在这里为了方便省事,我们就将刚刚在主服务器中生成的.ssh文件夹直接远程拷贝到从服务器1和2中即可。这样做最好的地方是,现在就没有主从服务器之分呢。从任一服务器远程登录到另一服务器都可实现无密码快速登录,原因是每个服务器中都含有公密钥。实际运行如下图:

    3

    4

          第三步,就是见证“奇迹”的时刻呢。首先,我们先从主服务器(nodep1)中ssh登录到从服务器1(nodep0)。可以看到,输入命令:$ ssh nodep0 后直接登入到nodep0服务器中,而无需输入nodep0登录密码。实际运行如下图:

    5

    更“神奇”的是,现在我们从nodep0也可以直接进行无密码登录到主服务器nodep1中,实际运行如下图:

    6

    至于原因,上文已经说明呢,就是主从服务器都含有相同的公密钥,故彼此间都可以实现无密码快速ssh登录。

          当然,以上只是一种实现ssh密码登录的快捷方法,网上的做法还有很多,这里是介绍其原理的,这里是另外一种大同小异的实现方法。最后需要说明的是,如果按照以上的步骤还是不能成功的实现无密码登录功能的话,可检查防火墙是否已经关闭以及修改.ssh文件夹及authorized_key文件的权限,一般来说就可以解决呢。如果还是不行,那可能就是其他深层次原因呢,需要自己细细排查,也欢迎贴出来供大家一起讨论学习!(本文完)

  • 相关阅读:
    (转) Android的Window类
    android 打开文件
    Android线程优先级
    Hierarchy viewer problems
    android:windowSoftInputMode
    (转) Android 安全机制
    Mobl试用之helloword
    写给自己对软件测试经历的总结
    Mobl试用二
    黑马程序员面向对象基础:属性和方法
  • 原文地址:https://www.cnblogs.com/JackyTecblog/p/2607923.html
Copyright © 2020-2023  润新知