以两种方式配置多台服务器免密码来窥探免密码的内在逻辑

方式一

示意图:

 
 
1-4、ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    (执行顺序:Linux001、Linux002、lInux003、Linux004)
 
5-6、cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys && scp ~/.ssh/authorized_keys Linux002:/root/.ssh/authorized_keys
        (Linux001上执行)
 
   
 
7-8、cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys && scp ~/.ssh/authorized_keys Linux003:/root/.ssh/authorized_keys
        (Linux002上执行)
 
9-10、cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys && scp ~/.ssh/authorized_keys Linux004:/root/.ssh/authorized_keys
        (Linux003上执行)
 
11、cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    (Linux004上执行)
 
12、scp ~/.ssh/authorized_keys Linux001:~/.ssh/authorized_keys
    scp ~/.ssh/authorized_keys Linux002:~/.ssh/authorized_keys
    scp ~/.ssh/authorized_keys Linux003:~/.ssh/authorized_keys
    (Linux004上执行)
 
 
    为啥这么麻烦:
        因为scp是覆盖的,不是追加
 
验证是否成功:
    在每一台服务器上,ssh连接localhost和其他三台服务器,都不需要输入密码,则配置成功
    以Linux001为例:
        ssh localhost date
        ssh Linux002 date
        ssh Linux003 date
        ssh Linux004 date
 
注意:
    如果ssh命令或scp命令报错:
        -bash: ssh: command not found
 
        -bash: scp: command not found
        则先执行:
            yum -y install openssh-clients

方式二

示意图:

1-4、ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    (执行顺序:Linux001、Linux002、lInux003、Linux004)

5、cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    (Linux001)

6、scp ~/.ssh/id_dsa.pub Linux001:~/.ssh/id_dsa.pub2
    (Linux002)

7、scp ~/.ssh/id_dsa.pub Linux001:~/.ssh/id_dsa.pub3
    (Linux003)

8、scp ~/.ssh/id_dsa.pub Linux001:~/.ssh/id_dsa.pub2
    (Linux004)

9、cat ~/.ssh/id_dsa.pub* >> ~/.ssh/authorized_keys
    (Linux001)

10、scp -r ~/.ssh/authorized_keys Linux002:~/.ssh/ && scp -r ~/.ssh/authorized_keys Linux003:~/.ssh/ && scp -r ~/.ssh/authorized_keys Linux002:~/.ssh/

总结归纳:

1、无论是哪种方式实现免密码,都满足:
    只要在任意一台机子上执行cat  ~/.ssh/authorized_keys命令,都会将所有四台机子的公钥打印出来。
    一台机子的认证文件中只要有了别人的公钥,别人就可以免密码访问这台机子。
2、不容质疑的公理:
    只要B的认证文件cat  ~/.ssh/authorized_keys中有了A的公钥,A就可以免密码访问B。

3、记忆秘诀:
    请把公钥想象成一把要去锁别人家里大门的锁,而自己保存的私钥,则可以想象成是去开别人家里大门上自己的锁的钥匙,能开动锁,就能去他家,就能免密码。


思维拓展:
    如果A要调度B上的脚本,则是A的公钥给B还是B的公钥给A?    
    答案见文章尾部。

    

    

思维拓展答案:

       A的公钥给B。

答案经过测试,放心可靠。

猜你喜欢

转载自blog.csdn.net/pengzonglu7292/article/details/89194824
今日推荐