最近需要对公司的每日数据进行分布式备份,主要是在两台服务器之间对重要数据互为备份。
因为我们都有点懒,另外从系统设计角度也不能手工来操作,所以要写个自动进行备份的程序。这就涉及到配置ssh授权,使用scp来传输文件了。
scp在连接过程中会用到ssh的验证,需要输入密码,但是这样以来程序实现上面就不方便了。就需要两台服务器之间授权验证,实现无密码登录。
搜了资料,再加上之前的一个同事的指导,得以完成。资料讲了很多相关的知识,很容易把人搞晕,实际上明白之后是非常简单的,总结如下:
ssh授权涉及到了密钥,一个私钥一个公钥,用来验证。生成并分发你自己的密匙有两个好处:
1) 可以防止"中间人"这种攻击方式
2) 可以只用一个口令就登录到所有你想登录的服务器上
现在假设需要从A机登录到B机,同时我们假设在A机上使用用户user进行登录,就需要做以下几步即可实现:
1、在A机上user用户下,执行ssh-keygen -d命令,如果是ssh1就不带参数,系统会提示:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa):
[直接Enter就是了]
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
[这个地方就是设置使用什么密码进行登录,无密码登录直接Enter就是了]
Your identification has been saved in /home/user/.ssh/id_dsa.
[这个就是你的私钥]
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
[这个就是你的公钥]
2、好了,现在就可以把你的公钥交给你要登录的B机了,把id_dsa.pub文件拷贝到B机上对应的/home/user/.ssh/目录下,并且改名为authorized_keys,记得把权限设置成644,否则ssh不会正常验证
3、ok,完成,是不是很简单。现在测试一下,在A机上ssh B,直接就登录了,没有密码输入的提示
同时测试一下scp命令,scp test.txt B:/tmp
test.txt 100% 5 0.0KB/s 00:00
再查看B机/tmp目录,已经存在test.txt文件,一切成功!
因为我们都有点懒,另外从系统设计角度也不能手工来操作,所以要写个自动进行备份的程序。这就涉及到配置ssh授权,使用scp来传输文件了。
scp在连接过程中会用到ssh的验证,需要输入密码,但是这样以来程序实现上面就不方便了。就需要两台服务器之间授权验证,实现无密码登录。
搜了资料,再加上之前的一个同事的指导,得以完成。资料讲了很多相关的知识,很容易把人搞晕,实际上明白之后是非常简单的,总结如下:
ssh授权涉及到了密钥,一个私钥一个公钥,用来验证。生成并分发你自己的密匙有两个好处:
1) 可以防止"中间人"这种攻击方式
2) 可以只用一个口令就登录到所有你想登录的服务器上
现在假设需要从A机登录到B机,同时我们假设在A机上使用用户user进行登录,就需要做以下几步即可实现:
1、在A机上user用户下,执行ssh-keygen -d命令,如果是ssh1就不带参数,系统会提示:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa):
[直接Enter就是了]
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
[这个地方就是设置使用什么密码进行登录,无密码登录直接Enter就是了]
Your identification has been saved in /home/user/.ssh/id_dsa.
[这个就是你的私钥]
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
[这个就是你的公钥]
2、好了,现在就可以把你的公钥交给你要登录的B机了,把id_dsa.pub文件拷贝到B机上对应的/home/user/.ssh/目录下,并且改名为authorized_keys,记得把权限设置成644,否则ssh不会正常验证
3、ok,完成,是不是很简单。现在测试一下,在A机上ssh B,直接就登录了,没有密码输入的提示
同时测试一下scp命令,scp test.txt B:/tmp
test.txt 100% 5 0.0KB/s 00:00
再查看B机/tmp目录,已经存在test.txt文件,一切成功!
![](/Editor/FCKeditor/editor/images/smiley/msn/shades_smile.gif)