在有些情况下,我们希望在两台centos机器之间建立ssh连接的时候,可以不用输入密码。最常见的情况就是在使用脚本做数据库备份的时候。这种情况下,我们可以通过公钥/私钥来建立双机之间的信任关系。

网上有些教程中使用的是root账号。如果仅仅是学习和实验,并无不可。但是如果用于实际的环境中,最好还是创建专门的账号。

建立双机信任的步骤很简单。以我们提到的数据备份的场景为例,假设我们有两台机器:source和target。在source上我们创建了用户dataSender,在target上我们创建了用户dataReceiver。

1. 在source的dataSender用户的home目录中(通常是/home/dataSender目录),执行命令

ssh-keygen -t rsa

这个命令会在当前目录下的.ssh目录中生成公钥私钥文件。私钥文件名为id_rsa,公钥文件名为id_rsa.pub。

当然,如果已经有了公钥私钥文件,则可以忽略这一步。

注意在创建密钥文件的过程中,会让你输入passphrase,这个是用来保护密钥的。如果输入了passphrase,那么在执行命令的时候还是需要输入passphrase验证。因此为了方便,我们可以直接输入回车来省略passphrase。当然,不使用passphrase会存在一定的安全风险,只要有人获取了你的密钥文件,就能够直接使用它。另外一种方案就是使用passphrase,但是同时使用ssh_agent来避免输入passphrase。这个在以后介绍。

2.为.ssh目录和密钥文件设置恰当的权限

chmod 700 ~/.ssh

chmod 600 ~/.ssh/id_rsa

3. 将id_rsa.pub文件copy到target的机器上,假设copy到/temp目录下。

4. 使用dataReceiver登录target机器,将上面copy过来的id_rsa.pub文件安装到authorized_keys列表中。

cat /temp/id_rsa.pub >> ~/.ssh/authorized_keys

在authorized_keys中包含了所有dataReceiver用户信任的公钥,每一条是一行。

5. 在target上设置权限

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

注意,如果在/etc/ssh/sshd_config中设置了StrictMode(默认是设置了的),那么必须象上面这样配置访问权限。

6.确保设置了正确的SELinux环境

restorecon -Rv ~/.ssh

现在,就可以从source上的dataSender账号下,使用私钥来以dataReceiver的身份登录target了。

ssh dataReceiver@target

ssh会先尝试使用私钥登录,如果没有私钥文件或者私钥文件验证不成功,才会提示输入密码。

题外话:如果想不允许使用密码登录,可以在/etc/ssh/sshd_confg中做如下设置

PasswordAuthentication no

centos下建立双机信任关系的更多相关文章

  1. scp建立安全信任关系

    1. 在机器Client上root用户执行ssh-keygen命令,生成建立安全信任关系的证书. [root@Client root]# ssh-keygen -b 1024 -t rsa Gener ...

  2. Centos下SFTP双机高可用环境部署记录

    SFTP(SSH File Transfer Protocol),安全文件传送协议.有时也被称作 Secure File Transfer Protocol 或 SFTP.它和SCP的区别是它允许用户 ...

  3. linux建立ssh信任关系

    一.建立SSH信任将A主机做为客户端(发起SSH请求 ip:192.168.200.170)将B主机作为服务器端(接收ssh请求   ip:192.168.200.149)以上以主动发起SSH登录请求 ...

  4. 【MongoDB】 windows下建立双机主从

    [双机配置] 服务端: 两台 Dell R730 双路E5 服务器 使用一个内网环境,网段20, ping 测试互通 主服ip: 192.168.20.176: 27017 从服ip: 192.168 ...

  5. CentOS下建立本地YUM源并自动更新

    1. 尽管有很多的免费镜像提供yum源服务,但是还是有必要建立自己的yum服务器,主要出于以下几点考虑: l 网络速度:访问互联网可能比较慢 l 节省带宽:如果有大量的服务器,架设自己的yum源可以有 ...

  6. [原创]CentOS下Mysql双机互为备份

    一.环境: 1.安装Centos-6.5-x64位系统的机器两台: host1:192.168.2.3 host2:192.168.2.4  (互相能ping通) 2.安装Mysql. 命令:Yum ...

  7. Linux创建SSH信任关系

    Linux服务器创建信任关系可以解决远程执行命令.远程传输文件多次手工输入的麻烦.可以实现环境一键打包备份. 测试环境 SuSE 手工创建 假设服务器A与B间要建立信任关系.用户想从服务器A免密码登录 ...

  8. 建立SSH的信任关系

    1.在Client上root用户执行ssh-keygen命令,生成建立安全信任关系的证书.  Client端 # ssh-keygen -t rsa Generating public/private ...

  9. 两台linux之间建立信任关系,实现免密码ssh远程登录或scp数据上传

    两台linux之间建立信任关系,实现免密码远程登录或数据上传 1.执行ssh-keygen命令,生成建立安全信任关系的证书: linux1上:执行命令  ssh-keygen  -t rsa 在程序提 ...

随机推荐

  1. Struts2深入学习:OGNL表达式原理

    今天看了ognl表达式,不是很理解,准备以后再回头复习: http://developer.51cto.com/art/201203/322509.htm#case1

  2. react 犯错

    1. import a from  './xx'  一定要有 ./ 2. export default const x={} 错 改为  const x={}; export default x; 也 ...

  3. 浅谈Nginx负载均衡和F5的区别

    前言 笔者最近在负责某集团网站时,同时用到了Nginx与F5,如图所示,负载均衡器F5作为处理外界请求的第一道"墙",将请求分发到web服务器后,web服务器上的Nginx再进行处 ...

  4. matlab下二重积分的蒙特卡洛算法

    %%monte_carlo_ff.m %被积函数(二重) function ff=monte_carlo_ff(x,y) ff=x*y^2;%函数定义处 end %%monte_carlo.m %蒙特 ...

  5. 总结:JSP几种提交表单方法

    问题描述: 最近进了一家“老公司”工作,说他老不是说他成立的早,是因为他的编程框架太l.......low了.EJB的规范模式,使用是IBM经过Eclipse二次开发出来的RAD(Rational A ...

  6. eclispe+axis2+webservice入门

    配置eclipse相关插件并启动axis2: http://blog.csdn.net/pilihaotian/article/details/52513697 这里你可能会遇到使用eclipse 启 ...

  7. Yii2 手动安装yii2-imagine插件

    由于网络的原因使用composer安装Yii框架,实在太过痛苦,所以这里干脆就手动安装yii-imagine的扩展. 首先下载yii2-image和Imagine扩展库,点击链接就可以从百度云下载上传 ...

  8. iOS中为什么block用copy属性

    1. Block的声明和线程安全Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非ARC ...

  9. 【Unity3d】3d网页游戏场景打包与加载

    http://www.cnblogs.com/dosomething/archive/2012/04/07/2436353.html 3d游戏中  一个场景往往比较大  如果游戏的进行需要下载一个10 ...

  10. awk命令和grep命令的使用

    1.遇到需求:用ping命令去检测系统网络延迟 跑 ping baidu.com -c 3,想要直接得到平均延迟. ping baidu.com -c 3 | grep rtt | awk -F \/ ...