zoukankan      html  css  js  c++  java
  • centos下建立双机信任关系

    在有些情况下,我们希望在两台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

    本博客文章除特别声明外,均为本人原创。本着互联网精神,欢迎转载。转载请注明出处
  • 相关阅读:
    软件开发项目文档模版
    Java Swing 非常漂亮的外观Nimbus使用方法
    周00王总监 宁波浦一的同仁们 有看见的进来
    冰川世界
    君住长江头,我住长江尾,日日思君不见君,共饮长江水
    可乐男孩被保送上大学
    变形金刚2
    爱无罪
    英语习惯口语简写
    看完了团长,我没有心理在去看《南京!南京!》
  • 原文地址:https://www.cnblogs.com/afrag/p/6083746.html
Copyright © 2011-2022 走看看