SSH免密码登录,实现数据传输备份
简单来说,就是通过ssh-keygen -t rsa命令来产生一组公私钥,私钥是id_rsa,公钥是id_rsa.pub,把公钥上传到另一台服务器对应账号的.ssh/authorized_keys,即可实现免密码登录到另一台服务器上。
1.ssh的登录方式
1.1 密码口令
- 客户端连接上服务器之后,服务器把自己的公钥传给客户端
- 客户端输入服务器密码通过公钥加密之后传给服务器
- 服务器根据自己的私钥解密登录密码,如果正确那么就让客户端登录
1.2 公钥认证
这个其实比上面的要简单,之前上大学时老师也讲过。一定要明白客户端和服务端时通过公钥和私钥实现认证登录的。一定要牢牢记住就是只靠这两个东西,没有其他的了。
拿自动化部署举例,Rundeck部署在一台服务器上现在要对其他的一台或者多台部署服务器进行项目部署,在这个场景下Rundeck对应的服务器要想去访问其他的部署服务器就要通过公私钥的这种方式。
Rundeck服务器相当于A端,而部署服务器相当于B端。A、B两端要实现交互认证就要通过一组公私钥。
1、客户端即A端生成RSA公钥和私钥:
一般在用户的根目录新建一个.ssh/.文件夹,在文件夹中通过ssh-keygen -t rsa命令来产生一组公私钥。
如下图所示id_rsa为私钥,id_rsa.pub为公钥。

2、客户端将自己的公钥存放到服务器:在生成了公私钥之后要实现AB两端的交互认证,这两个文件肯定不能只放到A端,当然也需要在B端(服务器端)做一下登记,我们自己(A端)保留自己的私钥,然后把公钥id_rsa.pub存放到B端(一般是在用户根目录下的.ssh/目录下)
在服务器端(B端)的.ssh/目录下还会有authorized_keys+know_hosts,这两个文件。

authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥,上面提到的A端在生成自己的公私钥之后,将公钥追加到authorized_keys文件后面。

红色框起来的为新追加的A端的公钥。
know_hosts : 已知的主机公钥清单,这个作为A端和B端都会自动生成这个文件,每次和远端的服务器进行一次免密码ssh连接之后就会在这个文件的最后追加对方主机的信息(不重复)

每进行一次就会在这个文件中自动的追加新的主机信息
通过scp将内容写到对方的文件中
命令:scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys
也可以分解为一下两步来进行:
$ scp ~/.ssh/id_rsa.pub root@<remote_ip>:pub_key //将文件拷贝至远程服务器
$ cat ~/pub_key >>~/.ssh/authorized_keys //将内容追加到authorized_keys文件中, 不过要登录远程服务器来执行这条命令
网上很多都是用scp >>去追加,如果你可以登录到B端的话其实直接复制过去就可以了。
需要注意的几点:
设置文件和目录权限(服务器端即B端的权限):
设置authorized_keys权限
$ chmod 600 authorized_keys

设置.ssh目录权限
$ chmod 700 -R .ssh

到这里我们的配置工作就结束了!!!
进行连接认证:
ssh root@222.73.156.133 -p1019

nsycn备份:rsync -avz -e 'ssh -p22222' /home/testa/ testb@111.160.40.132:/home/testb
SSH免密码登录,实现数据传输备份的更多相关文章
- ssh免密码登录、secureCRT免密码登录详解
再放一张真机实现图: 接下来就详细讲述实现细节. 实现过程中吃了不少苦头,这个不对,那个不通.好在慢慢一点点摸索出来了,经验分享在这里. 希望能终结网上ssh免密码登录,以及SecureCRT免密码登 ...
- ssh免密码登录机器(使用公钥和秘钥进行加密来实现)
ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 登录的原理: 有机器A(192.168.1.155),B(192.168.1. ...
- Mac下到Linux主机ssh免密码登录
最近忙得忘乎所以,写篇博客放松放松,RT,直接上命令好了 # Local ssh-keygen -t rsa scp ~/.ssh/id_rsa.pub username@server:~/.ssh/ ...
- 如何配置ssh免密码登录
[TOC] 如果你在管理一堆unix机器,每次登录都要输入密码是挺烦的事情,一方面为了安全我们一般不会将所有机器的密码都设置成一样,另一方面就算一样每次都输入一遍也很麻烦. 这种情况下我们一般是用ss ...
- linux 配置ssh免密码登录
1.确保主机名唯一 主机名修改方法: a.修改/etc/sysconfig/network,HOSTNAME=想要设置的主机名称 b.修改/etc/hosts,127.0.0.1 localhos ...
- centos ssh 免密码登录
最近在学习的过程中遇到这个问题: A主机和B主机: A 免密码登录B: 首先在A的 ~/.ssh 目录中 执行 ssh-keygen -t rsa 一路回车 最后生成连个文件: 将id_rsa.pub ...
- ssh免密码登录记录
做mha.hadoop安装过程中都要用ssh免密码登陆,查过一些资料,踩过很多坑,下面用简单记录一下 首先要安装ssh linux : centOS 6.5 yum -y install *ssh* ...
- Linux下SSH免密码登录
转自:http://haitao.iteye.com/blog/1744272 ssh配置 主机A:10.0.5.199 主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B 先确保所 ...
- 配置Ssh免密码登录
配置Ssh免密码登录 一个master节点,两个client节点(client1.client2) 1.所有节点创建hadoop用户,并设置密码 以root账号登录: useradd hadoop p ...
- [Hadoop] - SSH免密码登录
在安装hadoop之前需要进行ssh免密码登录,ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以Redhat为例. 我这里只采用一台机器A(10. ...
随机推荐
- 搭建Git工作环境
为什么要做版本控制? 在平时的工作中,经常会遇到写文档的事情,而写文档基本都不会一蹴而就,总是会修修改改很多次,而版本控制能够记录每次修改的版本,能够进行回溯.有很多版本控制工具,但是作为一个程序员, ...
- 亚马逊6月18日发布惊世之作 或为3D智能手机
亚马逊将在 6 月 18 日举行一个产品发布会. 其内容可能是关于传闻已久的亚马逊智能手机.该公司在 YouTube 上公布了一段炫耀这款设备的视频.这段视频展示了很多人在这款产品前摇头晃脑,并且表现 ...
- 亚马逊:PS4和Xbox One实在太火
圣诞节刚刚结束,当实体零售商在抱怨坑爹的天气让自己节日生意变得冷清的同时,在线零售商们却依旧赚的盆满钵满. 亚马逊近日表示,今年节日期间的零售工作非常不错,新一代游戏机更是最大的亮点.据销售统计,在圣 ...
- Java 学习笔记 ------第四章 认识对象
本章学习目标: 区分基本类型与类类型 了解对象与参考的关系 从打包器认识对象 以对象观点看待数组 认识字符串的特性 一."=" 和 "==" 当=用于基本类型时 ...
- TCP系列49—拥塞控制—12、DSACK下的拥塞撤销
一.概述 DSACK下的虚假重传的检测我们之前重传部分的文章已经介绍过了,这里简单说一下拥塞控制部分的实现. linux内部会维护一个undo_retrans状态变量,其值为已经重传的次数减掉被DSA ...
- 初识 es6之 const
const声明一个只读的常量.一旦声明,常量的值就不能改变. 例子: const a=12; a=2;//报错,const 声明的是常量,不能改 const声明的变量不得改变值,这意味着,const一 ...
- 操作系统之实验二Step1-有序顺序表
实验二Step1-有序顺序表 专业:商业软件工程 班级:商软2班 姓名:甘佳萍 学号:201406114207 实验要求:初始化 输入数组元素个数. 输入n个数,排序输出. 存 ...
- PHP qrcode 生成二维码
<?php /* 下载地址 : https://sourceforge.net/projects/phpqrcode/ 这里下载的文件名为 phpqrcode-2010100721_1.1.4 ...
- spring mvc $.ajax没有指定contentType ,导致后台无法接收到数据
var formData = JSON.stringify(this.rows); //将表单中的数据转为字符串 $.ajax({ type: "post", url: 'http ...
- Java 中 Vector、ArrayList、List 使用深入剖析
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中.本文试图通过简单的描述,向读者阐述各个类的作用以 ...