设为首页 收藏本站
查看: 1022|回复: 0

[经验分享] 配置CentOS服务器间的SSH信任登录

[复制链接]

尚未签到

发表于 2016-5-12 09:31:51 | 显示全部楼层 |阅读模式
  
在多数情况下,处于安全考虑,使用SSH登录到CentOS服务器时,需要提供正确的用户密码方可登录。但在某些特殊情况下,比如后台进程进行远程文件备份时,我们依然采用SSH登录,但此时不希望提供密码就能登录到服务器。最近在做的一个项目就是这样,利用rsync在服务器间进行文件的同步,这时要避免输入密码的情况存在,否则后台备份就会失败。

需求与分析:

两台服务器,机器名和IP分别如下:
■ Server cluster1:192.168.1.201
■ Server cluster2:192.168.1.202
rsync将文件从cluster1同步到cluster2上,要求从cluster1上使用SSH登录到cluster2不需要输入登录用户的账号密码,即建立两台服务器间的信任登录。

配置步骤:

1、在cluster1上生成SSH密钥对【cluster1:root用户】


view plain   copy


  • ssh-keygen -t rsa 
  • Generating public/private rsa key pair. 
  • Enter file in which to save the key (/root/.ssh/id_rsa):[直接回车]
  • Created directory '/root/.ssh'.
  • Enter passphrase (empty for no passphrase):[直接回车]

  • Enter same passphrase again:[直接回车]

  • Your identification has been saved in /root/.ssh/id_rsa. 
  • Your public key has been saved in /root/.ssh/id_rsa.pub. 
  • The key fingerprint is: 
  • 60:bd:db:66:14:1f:e9:22:c2:01:42:16:28:bb:c6:3e root@Cluster1 

上述命令为root用户生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在/root/.ssh/目录下。
2、将公钥id_rsa.pub文件通过网络复制到cluster1中【cluster1:root用户】


view plain   copy


  • cd /root/.ssh/ 
  • scp id_rsa.pub root@192.168.1.202:/root/.ssh/192.168.1.201

  • The authenticity of host '192.168.1.202 (192.168.1.202)' can't be established. 
  • RSA key fingerprint is da:09:bf:0a:2f:83:d1:17:1a:f7:4c:dd:54:6d:5d:8c. 
  • Are you sure you want to continue connecting (yes/no)? yes 
  • Warning: Permanently added '192.168.1.202' (RSA) to the list of known hosts. 

  • root@192.168.1.202's password:[输入cluster2服务器中root用户的密码] 

  • id_rsa.pub                                      100%  395     0.4KB/s   00:00  

命令scp id_rsa.pub root@192.168.1.202:/root/.ssh/192.168.1.201的意思是以192.168.1.202的root用户身份登录到192.168.1.202上,将id_rsa.pub文件拷贝到192.168.1.202机器上的/root/.shh/目录下,并将id_rsa.pub重命名192.168.1.201。这样做的好处是进行多台服务器间的信任时,可以以IP来区分公钥文件,不容易混淆。若192.168.1.202上没有/root/.ssh目录,则会自动创建该目录。
3、登录到cluster2服务器上,追加id_rsa.pub公钥文件的内容至authorized_keys中【cluster2:root用户】


view plain   copy


  • cd /root/.ssh/ 
  • ll 
  • 总计 8 
  • -rw-r--r-- 1 root root 395 05-31 20:55 192.168.1.201 

可以清楚的看到,公钥文件已经复制过来了,并重命名为192.168.1.201。
接下来就将公钥文件里的内容追加到authorized_keys文件中,并更改其文件权限为600:


view plain   copy


  • cat 192.168.1.201 >> authorized_keys 
  • chmod 600 authorized_keys 

4、重启cluster2服务器上的SSH服务:


view plain   copy


  • service sshd restart 
  • 停止 sshd:[确定] 
  • 启动 sshd:[确定] 

5、从cluster1上使用SSH登录到cluster2上,无需输入密码:


view plain   copy


  • [root@Cluster1 .ssh]# ssh 192.168.1.202 
  • Last login: Tue May 31 21:05:51 2011 from 192.168.1.100 
  • [root@Cluster2 ~]#  

原理也很简单,在cluster1使用SSH登录到cluster2上时,会携带私钥id_rsa,其对应的公钥我们已经写入cluster2的/root/.ssh/authorized_keys中,这样私钥和公钥匹配了,登录也就不需要密码了,因为cluster2信任cluster1。
另外要注意一点:authorized_keys文件的权限设置为600;如果是为用户root生成了密钥对,authorized_keys文件的属主必须也是root,否则ssh登录时还是要输入密码。这个问题我也搞了好久才搞明白。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-215898-1-1.html 上篇帖子: 在CentOS 5.6上编译安装Memcached 下篇帖子: CentOS 安装 Memcache 服务器. java 做客户端.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表