一、问题描述
这两天接到领导给的一个小任务,大概要求:实现从linux服务器上定期备份某目录下的几个文件到windows下的某个文件夹下面。(要求在window下设计一个定时任务,每隔5分钟执行一次)。刚开始尝试过rsync和window下的cwrsync,但是始终无法实现密码的自动输入。周末的时候在家测试了samba,大概是可以的,把window下共享出来一个文件,然后通过samba挂载到liuux下的某个目录下面,之后就可以像操作linux的目录那样实现定期备份。但早上来时看到师傅发给我的邮件,说的是通过putty下面的证书也可以实现,于是就按照师傅发过来的邮件进行测试,虽然水平很菜,但在短时间内还是完成了,现在把步骤写下来,供大家参考。
二、准备工作
首次从网上下载putty的相关文件,官网下载地址为: 。解压之后里面有几个文件,本次需要用到的为PAGEANT.EXE(生成密钥)、pscp.exe(类似ftp软件),里面也有详细的帮助文档,有需要的话可以参考。在没有配置的情况下每次使用pscp登陆都得输入密码。如:进入到putty的目录下,执行:pscp putty.chm (把window下的putty.chm拷贝到远程的linux主机下的/home目录下面,之后会提示输入密码。)
三、利用putty中的证书
1、直接运行puttygen,出现如下图所示
点击Generate按钮生成一个公钥和私钥。
进度条完成之后会出现如下界面:
我在这里实现时没有输入密钥,默认是空的,当然这样可能不太安全。
最上面那个大大的只读文本框里面是公钥,用来保存到 authorized_keys 文件中,这个文件中的每一行都是一个公钥。默认情况下,这个文件位于 Linux 用户主目录的 .ssh/ 子目录中,如果文件和目录都不存在,可以直接创建。
但是创建的文件、目录和用户主目录($HOME, $HOME/.ssh, $HOME/.ssh/authorized_keys)的权限有个限制就是对除了本帐户的其他所有帐户都要求是只读的,否则的话,即使公钥、私钥都匹配 无误,也是无法登入系统的。这是 SSH 服务器的一个安全要求,因为如果别的帐户可以修改你的 authorized_keys 的话,恶意的增加一个公钥,那对方不用你的帐户口令也能以你的帐户登入系统了。对于一些特殊要求,你可以在 SSH 服务器的配置文件 sshd_config 中用指令 trictModes no 来取消这个限制。
2、用密钥登陆服务器的流程
象先前一样输入帐户名和口令登录到主机上。 输入如下命令,来编辑 authorized_keys 文件
mkdir -p $HOME/.ssh && touch $HOME/.ssh/authorized_keys \
&& chmod go-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys && vim $HOME/.ssh/authorized_keys 把
里面的东西复制到里面。建议直接按o键实现插入。(在上一步生成公钥时也保存了一个文件,但我在测试时第一次是使用的那里面的文件,但没有成功,之后改成如上所示的内容,然后成功。)
3、把刚才生成的私钥导入到:
4、实现不要密码下载或者上传
5、在window下建立一个.bat,然后设置一个定时任务。.bat 内容如下:
@echo off
cd\
c:
cd "任务\putty"
阅读(2043) | 评论(0) | 转发(0) |