在有些情况下,我们希望在两台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. 小尝试一下 cocos2d

    好奇 cocos2d 到底是怎样一个框架,正好有个项目需要一个游戏框架,所以稍微了解了一下.小结一下了解到的情况. 基本概念 首先呢,因为 cocos2d 是基于 pyglet 做的,你完全可以直接用 ...

  2. linux动态代码注入

    参考网上文章:http://www.freebuf.com/articles/system/6388.html 按照文章,实现了代码的动态注入,即对一个正在运行的进程,在不重启的情况下执行一段不在原程 ...

  3. C#委托

    1.什么是委托: 委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法).它类似C语言里的函数指针,但它是类型安全的. 委托类型包含3个重要的信息: 它所调用的方法的名称 该方法 ...

  4. Python Day18

    WEB框架 MVC Model View Controller 数据库 模板文件 业务处理 MTV Model Template View 数据库 模板文件 业务处理 Web请求流程 -- 原始Web ...

  5. vm.max_map_count

    Virtual memoryedit Elasticsearch uses a hybrid mmapfs / niofs directory by default to store its indi ...

  6. CentOS7下默认目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用默认目录安装mono+jexus教程,使用自定义目录请查看使用自定义目录安 ...

  7. 子div设置float后导致父div无法自动撑开的问题

    子div设置float后会导致父div无法自动撑开 原因:内部的DIV因为float:left之后,就丢失了clear:both和display:block的样式,所以外部的DIV不会被撑开. 以下是 ...

  8. QEMU VCPU热插特性

    最近学习QEMU中VCPU热插特性,需要了解QEMU中VCPU热插的整个流程,VCPU热插是QEMU主板的一个feature. 1:这里先分析一下QEMU的主板模拟,主板在QEMU的设备模型中对应的是 ...

  9. mfc+vtk

    MFC中view类主要处理显示视图,doc类处理文档,mainframe主要为整个窗口的和工程的设置管理.由此,VTK与MFC联合编程时,需要主要的是数据操作,以及显示要很好的与MFC中的结构结合,做 ...

  10. leetcode算法分类

    利用堆栈:http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/http://oj.leetcode.com/problem ...