一、踩坑场景
昨天感谢二徐,由于我的操作导致上百台服务器信任关系断联,导致服务器内部大部分的业务失败,两位同事帮忙处理到深夜,这里非常感谢,以后合作过程中一定要注意,注意再注意.
服务器建立信任关系大家可能都知道,从网上搜搜的时候也是一搜一大篇,无非第一步就是 ssh-keygen -t rsa,这块我建议大伙注意的是,你如果发现你所在的公用目录中已经有密钥了,请不要再操作了,直接用就可以,要不然你的覆盖会导致之前的信任关系失效。 下面我这里详细介绍下如何建立信任关系.

  1. 如何建立信任关系
    1.1 确认你要用什么帐号在两台服务器直接创立信任关系.
    场景:
    A 服务器 帐号 user_a
    B 服务器 帐号 user_b
    实现目标: 在A 服务器上 传输文件或者 登录 到 B服务器上忽略密码.

    1.2 建立方法
    1.2.1 登录到A服务器切换到用户 user_a
    1.2.2 ssh-keygen -t rsa 一路确认
    1.2.3 在A服务器上 ssh-add id_rsa
    如果报错:
    下面有几个异常情况处理:
    –如果系统提示:could not open a connection to your authentication agent
    则需要执行一下命令:ssh-agent bash
    然后再执行上述的ssh-add id_rsa命令
    1.2.4 在此时你会发现 cd ~/.ssh 下面 有两个文件 一个id_rsa 私钥 一个id_rsa.pub公钥
    1.2.5 把A服务器用户user_a 帐号下 .ssh/id_rsa.pub 拷贝到 B服务器user_b 帐号下的 ~/.ssh目录并命名为authorized_keys,如果B服务器存在 authorized_keys 则不能覆盖,需要把 A的公钥内容追加到此文件中.
    1.2.6 在A B 服务器都对 id_rsa.pub id_rsa 和 authorized_keys 都给予 700权限,才可以,

  2. 注意点
    2.1 存在rsa密钥的时候 不要覆盖,直接用或者确认无误后再操作
    2.2 权限设置,否则无法通信
    2.3 在执行计划任务的时候发现仍然无法通信,请确认你计划任务放在哪里, sudo crontab -l 出来的是 root 的任务列表.

  3. 如果需要建立双向信任,则对B服务器做相应的操作.