我们上一篇介绍了使用Curl+windows FTP实现linux到windows的数据备份,今天我们介绍一下使用SCP服务将Linux的文件到Windows的文件备份;我们都知道SCP使用的是SSL协议进行数据传输的,所以我们如果使用SCP服务进行数据传输的话需要安装openssh-clients(linux上),而windows上我们需要单独下载openssh for windows 工具。具体见下:
我们首先在linux上安装openssh-clients
1
|
yum install –y openssh-clients
|
如果安装了我们会出现以下现象;
接下来我们就需要下载windows openssh clients了;安装文件我们会以附件的方式进行上传
http://openssh.en.softonic.com/
我们windows下载后开始安装
我们默认勾选全部
安装目录
警告,提示我们需要进行配置
安装完成
我们打开安装目录
通过命令提示符进入安装目录
然后执行以下命令
1
2
3
4
5
|
mkgroup -l >> ..\etc\group 将本地组成员导入 mkgroup -d >> ..\etc\group 将域中组成员导入 mkpasswd -l >> ..\etc\ passwd 将本地用户成员导入
mkpasswd -d >> ..\etc\ passwd 将域中用户成员导入
mkpasswd -l -u administrator >> ..\etc\ passwd
|
安装后启动服务;提示错误
我们同时也在服务里面启动,也出现错误
因为是64位的文件,所以我们需要覆盖里面的安装文件,将该附件解压后,将两个文件覆盖到bin目录下即可
1
2
|
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
1
2
|
net stop opensshd net start opensshd |
我们先从window上拷贝一个文件到linux上
我们执行命令必须在openssh目录下,不然会提示scp没有这个命令,我们也可以将该路劲添加到环境变量中,这样就可以任意执行命令了
1
|
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
1
|
scp /root/1 .txt administrator@192.168.6.188:
|
1
|
scp 1.txt gavin@192.168.6.188:d: /data/
|
1
2
3
4
5
|
或者使用--建议使用一下格式 使用cygdrive格式 scp 1.sh administrator@192.168.6.188: /cygdrive/d/data/
比如需要拷贝到windows一下目录 D:\ test \data\--->我们需要更改命令格式 /cygdrive/d/test/data/
就少了很多错误提示 |
在linux上执行
本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1856301,如需转载请自行联系原作者