设为首页 收藏本站
查看: 809|回复: 0

[经验分享] linux ssh rsync

[复制链接]

尚未签到

发表于 2018-5-22 11:42:03 | 显示全部楼层 |阅读模式
  SSH
  主要用以下三个功能组件
1.ssh远程登录  Windows下的SecureCRT、Putty
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/inittabroot@192.168.88.88:/root
  2、从远程主机拷贝到本地:
         scp 用户名@远程主机地址:远程文件本地目录
         scp -r 用户名@远程主机地址:远程目录本地目录

         常用选项
         -p 保持原有文件属性  (建议加上)
         -r 复制目录
         -P 指定端口
  五、ssh信任(非对称加密)
  对称密钥加密               密钥yue
  加密解密使用同一密码
  速度快
  密钥本身需要交换(这就不安全了)
  非对称密钥加密
  也称公开密钥加密,会同时生成两个密钥
  一个公开出去(公钥),一个私人持有(私钥)
  用其中一个密钥加密的数据,只有用另一个密钥才能解密
  公钥加密->私钥解密  (加密文件时使用)  参见“openssl命令行进行RSA加密解密.txt”
  私钥加密->公钥解密  (验证身份,数字签名) 让服务器信任后,使用SSH时,就不用验证密码了
  非对称密钥加密特点:
  安全性好
  速度慢
  疑问:scp是需要输入密码的,如何建立信任关系?
  测试环境:
  远程服务器ip为192.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 webadmin@192.168.88.88:/home/webadmin
  此时还是需要验证密码的,webadmin是远程主机192.168.88.88上的普通用户
  3、到远程主机做信任操作
  ssh-2 webadmin@192.168.88.88
  cd~   来到用户宿主目录
  ls-a  如果没有.ssh目录,则创建
  mkdir.ssh
  catid_rsa.pub >> .ssh/authorized_keys#加入到认证信息,用的是追加,可以保存多个信任用户
  chmod700 .ssh                                             # 新版本的ssh要求这个目录的权限必须是700
  chmod600 .ssh/authorized_keys             # 新版本的ssh要求这个文件的权限必须是600
  4、回到MyPC本机测试
  sshwebadmin@192.168.88.88    不需要密码,直接登录成功
  那么通过scp拷贝文件,也不需要密码了
  注意:
         在本机中由于是root用户生成公钥,所以只要在本机上,只有使用root用户以webadmin身份操作远程主机才是信任的。
                    如果本机不是root用户,或不指定以webadmin用户操作远程主机,依然需要密码。
            ssh root@192.168.88.88 ,尝试以root身份登录远程主机,还是要输入密码
  
  六、rsync数据镜像备份工具
  WebServer和MyPC上都要安装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 webadmin@192.168.88.88:/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 webadmin@192.168.88.88:/website /backup/website_$(date+%Y%m%d)
  0  2 *  *  1-6  /usr/bin/rsync -arHz --delete -e ssh webadmin@192.168.88.88:/website/backup/web
  取当前日期
  echo$(date +%F)   可查看date --help
  echo$(date +%Y%m%d)
  给变量赋值:
  #a=5; echo $a;
  #a=(`date +%F`)
  #echo $a
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-479073-1-1.html 上篇帖子: linux上redis安装 下篇帖子: vm tools linux安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表