您的当前位置:首页正文

linux机器间建立信任关系

来源:个人技术集锦
linux机器间建⽴信任关系

linux机器间建⽴信任关系

如何建⽴信任关系

在shell脚本中,需要使⽤scp命令将本地的⽂件复制到另⼀台机器中备份。但通常执⾏scp命令后都需要输⼊⽤户密码,这样在定时⾃动执⾏shell脚本中就不适⽤了。

在两台机器的两个⽤户之间建⽴安全的信任关系后,可实现执⾏scp命令时不需要输⼊⽤户密码。(该⽅法对ssh也适⽤) 以下将介绍如何在两台机器间建⽴信任关系,为了⽅便说明,我们将执⾏scp命令的机器叫做client,scp命令操作的远端机器叫做server。假设两个机器的账户都是work(其他账户也⾏,为了讨论⽅便假设了⼀个)。

1、在机器Client上work⽤户执⾏ssh-keygen命令,⽣成建⽴安全信任关系的证书。[work@Client work]# ssh-keygen -b 2048 -t rsaGenerating public/private rsa key pair.

Enter file in which to save the key (/work/.ssh/id_rsa): <– 直接输⼊回车Enter passphrase (empty for no passphrase): <– 直接输⼊回车Enter same passphrase again: <– 直接输⼊回车Your identification has been saved in /work/.ssh/id_rsa.Your public key has been saved in /work/.ssh/id_rsa.pub.The key fingerprint is:

49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1c root@A[work@Server work]#

注意:在程序提⽰输⼊passphrase时直接输⼊回车,表⽰⽆证书密码。

上述命令将⽣成私钥证书id_rsa和公钥证书id_rsa.pub,存放在⽤户根⽬录的.ssh⼦⽬录中。

2、将公钥证书id_rsa.pub复制到机器Server的work根⽬录的.ssh⼦⽬录中,同时将⽂件名更换为authorized_keys。[work@Client work]# scp -p .ssh/id_rsa.pub work@192.168.3.206:/work/.ssh/authorized_keyswork@192.168.3.206′s password: <– 输⼊机器Server的work⽤户密码id_rsa.pub 100% |**************************| 218 00:00[work@Client work]#

执⾏完上⾯两步后,就在机器Client的work和机器Server的work之间建⽴安全信任关系。下⾯我们看看效果:[work@Client work]# scp -p text work@192.168.3.206:/work

text 100% |**************************| 19 00:00 //这时不需要输⼊密码了[work@Client work]#

同⼀台机器上⾯scp也需要设⽴信任关系。。。囧

已经存在的key,直接cat .ssh/id_rsa.pub >>.ssh/authorized_keys ,就搞定啦~~~

⽆法建⽴信任关系时排错步骤

1.AB主机名是默认的Localhost,如果AB之间的主机名相同,可能会导致⽆法成功。要修改主机名⽤hostname 命令,修改/etc/sysconfig/network,then restart your server.

2.查看SSH配置⽂件/etc/ssh/ssh_config,找到IdentityFile所指定的⽂件是什么,有的不是默认的id_rsa,这⾥指定的⽂件要和第⼀部分⽣成的⽂件名要相同,这⾥是id_rsa.

3.查看B机authorized-keys的⽂件权限是否为600或者644 (),如直接在server机器上vi或touch建⽴⽂件authorized_keys,可能会导致信任关系⽆法建⽴。

4.查看/var/log/secure⽇志,⾥⾯应该有⼀些蛛丝马迹可以供你参考

因篇幅问题不能全部显示,请点此查看更多更全内容