规则之树

CentOS系统,scp命令免密传输文件

CentOS系统从大学毕业后就没深入的去玩了,很多实用的命令回想一下都有些没记住,但是最近在处理博客的数据库,文件自动备份问题,所以还是需要用到scp命令来直接远程传输。这是一个相当好用的命令,简单的语句就可以将文件和文件夹发送出去,但是每次都需要输入密码,不是太方便,而且如果写自动备份的脚本总不可能把密码也丢在里面,很不安全,但是其实有免密传输的办法,配合scp让备份数据方便了不少。

教程参考:csdn博客老刀-007文章

我有两台服务器:

A为本地服务器:192.168.0.1
B为远程服务器:192.168.0.2

首先需要生成并配置密钥

1.在服务器A执行

ssh-keygen -t rsa  //连续三次回车,即在本地生成了私钥(id_rsa) 与公钥 (id_rsa.pub),不设置密码
ssh root@192.168.0.2 "mkdir .ssh" //根据提示输入密码,在B服务器root目录创建一个名称为.ssh的文件夹
scp ~/.ssh/id_rsa.pub root@192.168.0.2:.ssh/id_rsa.pub   //将密钥文件传输到上个步骤创建的文件夹




2.在服务器B执行

touch /root/.ssh/authorized_keys //新建authorized_keys文件,如果有就跳过
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys //将id_rsa.pub的内容追加到authorized_keys 中

3.在服务器A测试免密登录(免密登录可以成功就代表scp命令也可以)

ssh root@192.168.0.2

然后,就可以测试scp传输了
在服务器A执行(比如我要把home目录的web.zip,传输到B服务器的home目录)

scp /home/web.zip root@192.168.0.2:/home  

如果是传输web目录

scp -r /home/web root@192.168.0.2:/home

总之简单的一条指令,而且不需要输入密码就可以快速传输。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »