1、首先在C(客户端),用 ssh-keygen -t dsa 命令,(记住不要加密码!)生成所在目录 .ssh文件,应该会生成两个文件 id_rsa和id_dsa .pub 其中id_dsa 为私钥,就为C机用的,id_rsa.pub 为公钥,要拷到S(服务器端)中的.ssh目录,并改名为 authorized_keys。
2、将authorized_keys考到S机中的.ssh 目录下,然后再改一下,(OpenSSH的配置通常保存在:/etc/ssh/sshd_config
PermitRootLogin no # 禁止root用户登陆
StrictModes yes # 检查密钥的用户和权限是否正确,默认打开的
RSAAuthentication yes # 启用 RSA 认证
AuthorizedKeysFile .ssh/authorized_keys # 验证公钥的存放路径
PubkeyAuthentication yes # 启用公钥认证
PasswordAuthentication no # 禁止密码认证,默认是打开的。)
就是把PasswordAuthentication yes 改成 no;
别忘记C和S机都要重启SSH,就是 /etc/init.d/sshd restart .
前两步过后,如不出问题,应该有C机上,直接SSH root@S 机 应该就会不用密码,直接登录。
但是把 PasswordAuthentication no 后,就会出现用windows中的WINSCP远程服务器不成功,因为我们采用密钥登录,也是默认的密码登录了,这时,要到相应的LINUX中的.ssh 中下载id_rsa文件,然后在windows用 puttykengen生成格式为ppk的密钥文件。把密码文件导入winscp后,就可能了登录了。
3、就是rsync实现备份,这就是好办了 命令如下 rsync -azv -e ssh /usr/local/mysql/var (前面) root@192.168.10.218:/usr/local/mysql/ 这句代码的意思,是从本机,或说叫S机,/usr/local/mysql/var (前面) 这个目录下的文件,同步备份到 root@192.168.10.218:/usr/local/mysql/ 下。
应该这个时候不用SSH密码就可以!