SSH免密码登录的原理:
    SSH证书认证登录的基础是一对唯一匹配密钥:私钥(private+key)和公钥(public+key)。
    公钥用于对数据进行加密,而且只能用于加密。而私钥只能对使用所匹配的公钥,所加密过的数据进行解密。私钥需要用户单独妥善保管。
    SSH客户端使用私钥向服务器证明自已的身份。而公钥是公开的,可以按需将其配置到目标服务器上自己的相应帐号中。
    在进行SSH登录认证时,进行私钥和公钥协商。如果匹配,则身份得以证明,认证成功,允许登录。
    否则,将会继续使用密码验证等其它方式进行登录校验。SSH证书验证登录配置及登录协商过程,如下证书校验交互登录流程示意图所示
    CentOS上设置 SSH 免密码登录 - 图1

    举例:
    目前是要实现:在A站点”122.141.182.219” 上实现ssh无密码连接B站点:Linux服务器”218.4.142.156”
    1) 在A站点:”122.141.182.219”服务器上使用”ssh-keygen -t rsa”命令来创建公钥。
    根据提示,一路回车即可,提示输入密码时回车即表示空密码。在用户根目录下会生成.ssh文件夹,里面包括id_rsa(私钥)和id_rsa.pub(公钥)
    CentOS上设置 SSH 免密码登录 - 图2
    2) 在A站点上用 ssh-copy-id 命令将公钥复制或上传到远程主机B 218.4.142.156,并将身份标识文件追加到218.4.142.156的 ~/.ssh/authorized_keys 中:

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@218.4.142.156
    CentOS上设置 SSH 免密码登录 - 图3
    或者另外一种方法

    A站点上
    scp ./.ssh/id_rsa.pub root@218.4.142.156:~/.ssh/
    CentOS上设置 SSH 免密码登录 - 图4
    然后登录B站点上
    cd ~/.ssh/
    cat id_rsa.pub >>authorized_keys
    chmod 600 authorized_keys
    CentOS上设置 SSH 免密码登录 - 图5
    3)验证在A站点免密码 SSH 登录站点B
    CentOS上设置 SSH 免密码登录 - 图6
    免密码登录配置好以后,可以通过SCP来传输文件,不用每次都输入密码了