由网络副手--寻路人于2016.04.07 18:46:00发布在服务器运维 多台服务器之间建立信任关系,无密码登录传输 阅读3103 评论0 喜欢2 一、踩坑场景 昨天感谢二徐,由于我的操作导致上百台服务器信任关系断联,导致服务器内部大部分的业务失败,两位同事帮忙处理到深夜,这里非常感谢,以后合作过程中一定要注意,注意再注意. 服务器建立信任关系大家可能都知道,从网上搜搜的时候也是一搜一大篇,无非第一步就是 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服务器做相应的操作. 赞 2 分享 赏 您可以选择一种方式赞助本站 支付宝扫码赞助 BraveDu 署名: 网络副手~寻路人