linux ssh rsync

SSH

 

主要用以下三个功能组件

        

1.ssh远程登录  Windows下的SecureCRTPutty

2.sftp文件共享  (FTP)  SSH Secure FileTransfer Client

3.scp 文件共享 (cp拷贝)

 

一、准备环境

         两台电脑

         1.WebServer:   192.168.66.131        这是一台在机房的服务器

         2.MyPC:            192.168.66.132        这是我们自己的工作电脑

        

         克隆后IP获取问题,详见第一天的CentOS实验整理。

        

      二、Linux下远程登录

         格式:

                   ssh用户名@地址

                  不允许空密码,很多Linux禁止root远程SSH登录

        

         常见选项

                   -2表示使用SSH版本号

                   -p指定端口

 

                  ssh -2 用户名@地址    (建议使用)

                  ssh -2 -p 端口号用户名@地址

 

         我们在使用Putty时,也可以在Connection中选择使用什么版本

         配置文件:

         vi/etc/ssh/sshd_config

         Port22   这是ssh的端口号,默认是注释掉的,去掉#号,就可以改了

         PermitRootLoginno         这样就能禁止root远程登录

        

         重启服务

         servicesshd restart

三、sftp文件共享(了解)

         Linux下命令行:

         sftp用户名@主机地址

                   连上去后可执行 ls  get  put help bye

        

         很少用命令行,我们经常在Windows下用客户端软件:

                   WinSCP(同时支持SCP协议)

                   SSH Secure File TransferClient (安装SSH.Secure.Shell.Client_3.2.9.exe)

        

四、scp 文件共享(推荐使用)

        

         1、本机拷贝到远程主机用法:

         scp 本地文件用户名@ip地址:远程主机上的目录

         scp -r 本地目录用户名@远程主机ip:远程主机上的目录

 

         scp --help查看帮助

 

         inittab文件传到另一台主机的/root目录中:

         scp /etc/[email protected]:/root

 

         2、从远程主机拷贝到本地:

         scp 用户名@远程主机地址:远程文件本地目录

         scp -r 用户名@远程主机地址:远程目录本地目录

        

         常用选项

         -p 保持原有文件属性  (建议加上)

         -r 复制目录

         -P 指定端口

 

五、ssh信任(非对称加密)

对称密钥加密               密钥yue

         加密解密使用同一密码

         速度快

         密钥本身需要交换(这就不安全了)

 

非对称密钥加密

         也称公开密钥加密,会同时生成两个密钥

         一个公开出去(公钥),一个私人持有(私钥)

         用其中一个密钥加密的数据,只有用另一个密钥才能解密

 

         公钥加密->私钥解密  (加密文件时使用参见“openssl命令行进行RSA加密解密.txt

         私钥加密->公钥解密  (验证身份,数字签名) 让服务器信任后,使用SSH时,就不用验证密码了

        

         非对称密钥加密特点:

         安全性好

         速度慢

 

 

疑问:scp是需要输入密码的,如何建立信任关系?

 

        

         测试环境:

                   远程服务器ip192.168.88.88,用户为webadmin

                   本地电脑用户为root

         目的:本机root登录后,可以直接以webadmin身份操作远程服务器,不需要验证密码

 

         原理:让对方(远程服务器)信任我的公钥

        

         1、本机生成密钥对:(例如当前登录用户为 root)

         ssh-keygen-t rsa  全部回车即可

         RSA公钥加密算法是1977年由美国麻省理工学院开发的会提示生成的公钥 id_rsa.pub 已生成 ,即是该用户默认的 RSA 身份认证公钥(SSH-2)

 

         2、将公钥拷贝至远程主机

         scp/root/.ssh/id_rsa.pub [email protected]:/home/webadmin

         此时还是需要验证密码的,webadmin是远程主机192.168.88.88上的普通用户

 

         3、到远程主机做信任操作

         ssh-2 [email protected]

         cd~   来到用户宿主目录

         ls-a  如果没有.ssh目录,则创建

         mkdir.ssh

         catid_rsa.pub >> .ssh/authorized_keys#加入到认证信息,用的是追加,可以保存多个信任用户

         chmod700 .ssh                                             # 新版本的ssh要求这个目录的权限必须是700

         chmod600 .ssh/authorized_keys             # 新版本的ssh要求这个文件的权限必须是600

 

         4、回到MyPC本机测试

         [email protected]    不需要密码,直接登录成功

         那么通过scp拷贝文件,也不需要密码了

        

         注意:

         在本机中由于是root用户生成公钥,所以只要在本机上,只有使用root用户以webadmin身份操作远程主机才是信任的。

                  如果本机不是root用户,或不指定以webadmin用户操作远程主机,依然需要密码。

         ssh [email protected] ,尝试以root身份登录远程主机,还是要输入密码

 

六、rsync数据镜像备份工具

 

         WebServerMyPC上都要安装rsync,其中WebServer服务器上是以服务器模式运行rsync

         MyPC上则以客户端方式运行rsync。这样在web服务器上运行rsync守护进程,

         MyPC上定时运行客户程序来备份WebServer服务器上需要备份的内容到MyPC

 

         方便的增量备份实现

         可镜像保存整个目录树和文件系统

         保存文件权限、时间、软硬链接等

         文件传输效率高(可压缩传输)

         可以使用ssh加密通道

        

1、准备环境

         WebServer:

 

         服务是xinetd进程托管方式

         默认都已安装,检查是否已安装

                   rpm -q rsync

 

         启动服务默认不启用

         ls /etc/xinetd.d

         vi /etc/xinetd.d/rsync

                  修改disable = no  保存退出编辑器

         service xinetd restart      重启xinetd托管服务

                   若提示xinetd: 未被识别的服务,则说明/etc/rc.d/init.d下无xinetd

                   yum -yinstall xinetd*                #安装xinetd

                   ps -le |grepxinetd                    #查看是否启动成功

 

         MyPC:

 

         MyPC中,想要同步服务器上的一个目录到本机测试一下

         rsync -arHz --progress--delete [email protected]:/website /backup

         注意:webadmin是服务器上的用户,请确定webadmin有访问服务器/website目录的权限

         本机MyPC登录用户,要有操作/backup的权限

 

         如果重复执行,只会操作有改变的文件,如新加的文件或删除的文件,备份目录同步操作

        

         参数说明

         -a               保持文件属性

         -r                子目录递归处理

         -H              保持文件硬链接  如果要备份的文件中没有硬链接,也可以不加-H

         -z               备份文件传输时压缩处理

         -essh                 使用ssh加密隧道传输

         --progress         在传输时显示传输过程  可以不加

         --delete    删除目标备份没有的文件

        

         如果需要将MyPC中的目录上传到WebServer,本地目录写在前面即可

 

七、备份实例

定期将服务器上的/website目录备份到本机

         每周日02:00   完全备份,以日期作为目录

         周一到周六02:00  做一次增量备份

为什么即要做增量备份,还要做完全备份?

这里的增量备份,指的是目录同步,跳过相同的文件,如果有文件被删除,则也会删除备份目录中的,所以,需要定期做完全备份

 

         crontab-e

         0  2 *  *  0    /usr/bin/scp -rp [email protected]:/website /backup/website_$(date+%Y%m%d)

         0  2 *  *  1-6  /usr/bin/rsync -arHz --delete -e ssh [email protected]:/website/backup/web

        

         取当前日期

                   echo$(date +%F)   可查看date --help

                   echo$(date +%Y%m%d)

                   给变量赋值:

                   #a=5; echo $a;

                   #a=(`date +%F`)

                   #echo $a

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章