linux下实现无需密码的ssh登陆 用于实现数据同步

PHP 林涛 6766℃ 0评论

在做两台服务器的数据同步,无论是通过ssh登陆,还是通过scp拷贝文件都需要输入密码,所以要想实现两机数据同步则 必须先要解决的是无需登陆的ssh,这样再通过crontab就可以通过脚本定时通过scp命令来做远程备份了。

找到一个方法,分享如下:

注:此方法是使用了公钥和私钥的认证机制所以省去了密码。

 

1. 设置无需密码的ssh登陆,方法如下(测试通过):

假设250和252两台SUSE LINUX服务器,现在需要在250机上用root登陆252机,并且不需要输入密码,那我们可以按照下面的步骤来做:

1)在250机上生成钥匙对,执行以下命令:

#ssh-keygen -t rsa

Generating public/private rsa keypair.

Enter filein which to save the key (/root/.ssh/id_rsa): 直接回车(也可自设路径)
Enter passphrase(empty for no passphrase):直接回车
Enter same passphrase again:直接回车

Your identification has been saved in /root/.ssh/id_rsa.

Your public keyhas been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

f6:61:a8:27:35:cf:4c:6d:13:22:70:cf:4c:c8:a0:23  root@linux-250
这样,在/root/.ssh/路径下会生成id_rsa,和id_rsa.pub,其中id_rsa是密钥,id_rsa.pub是公钥。

2)把在250机生成的id_rsa.pub拷贝到252机上,假设拷贝到252机的临时目录下,例如:

#scp   /root/.ssh/id_rsa.pub  root@192.168.1.250:/tmp

3)用root帐号登陆252机,进入其主目录,创建authorized_keys文件,并设置好权限。

#cd  root/.ssh

#cat /tmp/id_rsa.pub >>authorized_keys(也可以cp /tmp/id_rsa.pub authorized_keys)

#chmod  400 authorized_keys(注:如果不成功,需要此句chmod 700 /root/.ssh )

#rm -f  /tmp/id_rsa.pub

在250机上登录252机(ssh 192.168.1.252),发现不要密码可以直接进入了.

注:

authorized_keys文件的权限很重要,如果设置为777,那么登录的时候,还是需要提供密码的。加密认证不支持高权限的不安全设置。

在252的机器上同理设置即可实现两台服务器之间的互信访问。

 

另外的方法(没有测试):

或者也可以同时加上RSA和DSA认证来实现。
1.主机250:
ssh-keygen -t rsa
ssh-keygen -t dsa
cat id_rsa.pub >> authorized_keys
cat id_dsa.pub >> authorized_keys

scp /root/.ssh/authorized_keys >>主机252:/root/.ssh/

2.主机252:
ssh-keygen -t rsa
ssh-keygen -t dsa
cat id_rsa.pub >> authorized_keys
cat id_dsa.pub >> authorized_keys
scp /root/.ssh/authorized_keys >>主机250:/root/.ssh/

注:如果三台主机间建立互信访问,可以先把其中的两台建立互信访问,然后把这两台上任一台的authorized_keys拷贝到第三台上,在第三台生成id_rsa.pub和id_dsa.pub并追加到authorized_keys里,把此文件再拷回那两台上覆盖原authorized_keys即可。

 

数据同步:

2. 编辑crontab文件

# vi /etc/crontab

例如设置每天12:50执行自动拷贝252上的某个指定目录下的文件:

50  12  *  *  *   root   scp  192.168.1.252:/root/sysstat*.rpm  /home
如图:

在另外一台上进行同上设置:
# vi  /etc/crontab

例如设置每天13:05执行自动拷贝250上的某个指定目录下的文件:

05  13  *  *  *   root   scp  192.168.1.250:/root/sysstat*.rpm  /home
如图:

3、至此实现了双机的互备。
注:#scp  -p 7455   -r  /home/lnmp0.4/  192.168.1.252:/opt/tom/
-p参数表示跟要连接的端口号(默认端口22,更改端口后要加p参数)

-r 参数表示递归复制(即复制该目录下面的文件和目录)

 

 

本文主要出自 此处http://xjsunjie.blog.51cto.com/999372/605365

如需转载请注明: 转载自26点的博客

本文链接地址: linux下实现无需密码的ssh登陆 用于实现数据同步

转载请注明:26点的博客 » linux下实现无需密码的ssh登陆 用于实现数据同步

喜欢 (0)
发表我的评论
取消评论

表情
(1)个小伙伴在吐槽