首页 > 代码库 > SCP实现Linux到Windows的文件数据备份

SCP实现Linux到Windows的文件数据备份

SCP实现Linux到Windows的文件数据备份

我们上一篇介绍了使用Curl+windows FTP实现linux到windows的数据备份,今天我们介绍一下使用SCP服务将Linux的文件到Windows的文件备份;我们都知道SCP使用的是SSL协议进行数据传输的,所以我们如果使用SCP服务进行数据传输的话需要安装openssh-clients(linux上),而windows上我们需要单独下载openssh for windows 工具。具体见下:

我们首先在linux上安装openssh-clients

yum install –y openssh-clients

如果安装了我们会出现以下现象;

技术分享

接下来我们就需要下载windows openssh clients了;安装文件我们会以附件的方式进行上传

http://openssh.en.softonic.com/

我们windows下载后开始安装

技术分享

我们默认勾选全部

技术分享

安装目录

技术分享

警告,提示我们需要进行配置

技术分享

安装完成

技术分享

我们打开安装目录

技术分享

通过命令提示符进入安装目录

技术分享

然后执行以下命令

mkgroup -l >> ..\etc\group          将本地组成员导入
mkgroup -d >> ..\etc\group        将域中组成员导入
mkpasswd -l >> ..\etc\passwd 将本地用户成员导入
mkpasswd -d >> ..\etc\passwd 将域中用户成员导入
mkpasswd -l -u administrator >> ..\etc\passwd

技术分享

安装后启动服务;提示错误

技术分享

我们同时也在服务里面启动,也出现错误

技术分享

因为是64位的文件,所以我们需要覆盖里面的安装文件,将该附件解压后,将两个文件覆盖到bin目录下即可

C:\Program Files (x86)\OpenSSH\bin
<<setupssh381-20040709.zip>>

技术分享

覆盖即可;如果有提示覆盖的就覆盖

技术分享

技术分享

覆盖后,服务启动正常

技术分享

技术分享

然后在防火墙开放端口

技术分享

我们在linux上进行telnet服务进行测试

技术分享

我们接下来使用命令进行尝试数据上传,提示错误

技术分享

配置key验证

接下来我们需要配置key验证,因为数据同步我们不能使用密码验证后再传输同步数据,所以我们需要配置key认证,这样本地服务器与远程服务器之间同步就不需要密码验证了;

其实key验证我们前面的文章中已经有写了,为了方便在此还是说说。在源服务器上我们通过ssh-keygen生成一对验证秘钥,一个公钥,一个私钥;私钥放在远程服务器上即可,私钥需要公钥验证后才可以匹配,所以相对还是比较安全的;

1ssh-keygen -t rsa     回车;

因为之前服务器上使用注册的,所以就拿来直接用了;计算机名不一样;请忽略即可;

技术分享

创建目录,认证目录;然后一路回车

技术分享

在/root/.ssh 目录下生成了一对密钥文件

id_rsa   私钥

id_rsa.pub     公钥

技术分享

我们将公钥拷贝到windows上

技术分享

技术分享

.将公匙导入到winsshd Open easy setting–>Virtual accounts 点add按钮,,,输入一个名字,比如codeif,在列表中0 keys后的编辑按钮,导入刚才的公匙以后就可以不用输入密码,linux就可以通过scp命令从装有winsshd的机器上获取文件了

注:在windows下只能使用命令来创建带点的文件夹".ssh"

技术分享

技术分享

将公钥拷贝到该目录

技术分享

2.将公匙导入到winsshd

Open easy setting–>Virtual accounts

点add按钮,,,输入一个名字,比如codeif,在列表中0 keys后的编辑按钮,导入刚才的公匙以后就可以不用输入密码,linux就可以通过scp命令从装有winsshd的机器上获取文件了

http://blog.csdn.net/acanoe/article/details/7868499

技术分享

net stop opensshd
net start opensshd

我们先从window上拷贝一个文件到linux上

我们执行命令必须在openssh目录下,不然会提示scp没有这个命令,我们也可以将该路劲添加到环境变量中,这样就可以任意执行命令了

C:\Program Files (x86)\OpenSSH\bin>scp.exe xxxx.txt root@192.168.6.28:/root

技术分享

我们发现在linux下多了一个sh.exe的文件

技术分享

我们也可以在windows上使用scp命令从linux上拷贝文件到windows 本地

接下来我们测试从linux到windows的指定目录进行拷贝文件

这样执行就传输到了默认路劲 ,安装默认在 C:\Program Files (x86)\OpenSSH

scp /root/1.txt administrator@192.168.6.188:

技术分享

技术分享

scp 1.txt gavin@192.168.6.188:d:/data/

技术分享

或者使用--建议使用一下格式 使用cygdrive格式
scp 1.sh administrator@192.168.6.188:/cygdrive/d/data/
比如需要拷贝到windows一下目录
D:\test\data\--->我们需要更改命令格式/cygdrive/d/test/data/
就少了很多错误提示

技术分享

技术分享

在linux上执行

技术分享

本文出自 “高文龙” 博客,谢绝转载!

SCP实现Linux到Windows的文件数据备份