Linux下的SCP无密码拷贝文件

其实我一般很少用SCP拷贝文件,我一般用CentOS、Ubuntu会装lrzsz工具
然后rz上传 sz下载(前提是你的ssh工具支持这个命令),如果必须要用SCP,请往下看。

今天给大家介绍一种在Linux服务器之间自动拷贝文件的方法。主要使用了基于ssh的并且安全的文件copy技术——scp。这种方法安全并且便捷,无需输入登录密码。
我们先设定一下场景和需求:每天凌晨4点30分,服务器A的文件自动同步到服务器B。我们可以认为服务器A是服务端,服务器B是客户端。下面演示如何达到这个目标。

  1. 在客户端(服务器B)生成一对公钥和秘钥。使用 ssh-keygen -t rsa生成,一路回车即可;
  2. 进入秘钥文件夹查看文件。其中id_rsa.pub是公钥,id_rsa是私钥;
//进入文件夹
cd ~/.ssh
  1. 打开id_rsa.pub文件,并把它的内容拷贝到服务端(服务器A)的authorized_keys文件中。
vi ~/.ssh/authorized_keys

然后你应该就可以在服务器A上无密码直接ssh ip连接到B了

  1. 在客户端(服务器B)编写文件拷贝的脚本
#!/bin/sh
#copy data from remote server. you should copy your client's id_rsa.pub content to the server's ~/.ssh/authorized_keys file
#this script run at client
 
scp -r root@x.xx.xxx.xxxx:/var/www/html/hellojammy/* /var/www/html/hellojammy/
 
exit 0;

其中,x.xx.xxx.xxxx是服务端(服务器A)的ip地址。这段脚本的作用是拷贝服务器B的/var/www/html/hellojammy/目录下的所有文件(包括子文件夹下的文件),到服务器A的/var/www/html/hellojammy/目录。脚本文件为scp_test.sh

  1. 在客户端(服务器B)编写定时任务脚本,执行文件拷贝的命令。
//编辑定时任务
crontab -e
//添加定时任务
30 4 * * * /bin/sh /data/script/scp_test.sh > /data/script/logs/scp_test.log 2>&1
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在Linux服务器之间自动拷贝文件的方法。主要使用了基于ssh的并且安全的文件copy技术——scp。这种方法安全...
    kto阅读 4,017评论 0 50
  • 点击访问原文您还可以加入全栈技术交流群(QQ群号:254842154) 今天给大家介绍一种在Linux服务器之间自...
    hellojammyPlus阅读 5,043评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,212评论 19 139
  • CA和证书安全协议(SSL/TLS)OpenSSH 一、CA和证书 (一) PKI(Public Key Infr...
    哈喽别样阅读 5,300评论 0 0
  • 人性本就有背光面,现实本就磨难重重,只有认识它、接纳它,才能找到同不喜欢的“真实”的相处之道,成为生命中的礼物...
    Barbie_BM阅读 3,693评论 0 0

友情链接更多精彩内容