背景: 有时候我们在两个主机之间复制文件的时候,提示输入密码,很不方便,那如何免密码复制呢?,就是使用通过linux公钥和秘钥,建立双机信任关系。
在整理之前,我先说下ssh免密码的要点 :
你想免密码登陆到哪个主机哪个用户, 就把你自己的公钥文件内容追加到远程主机对应用户下的authorized_keys文件中(对面可能没有这个文件,创建即可)。
一 生成秘钥,并添加信任
我的环境中node1的ip是192.168.168.201,node2的ip是192.168.168.202.
[root@node1 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #生成rsa
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.168.202 #复制201的公钥到202机器上,这样就可以使用在201机器上免密码登录202机器了。
[root@node2 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #生成rsa
[root@node2 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.168.201 #复制202的公钥到201机器上,这样就可以使用在202机器上免密码登录201机器了。
注意:
- 如果远程主机的端口非22端口,需要指定-p port选项。
- ssh-copy-id是由openssh-clients包提供,没有这个命令可以安装这个包。
- centos6,7使用ssh-copy-id的时候可以不用指定-i选项,centos5必须指定的。
2.信任自己主机
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.168.201
[root@node2 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.168.202
3.测试
[root@node1 ~]# ssh 192.168.168.202 'ip addr show dev eth0 '
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:3f:42:13 brd ff:ff:ff:ff:ff:ff
inet 192.168.168.202/24 brd 192.168.168.255 scope global eth0
inet6 fe80::250:56ff:fe3f:4213/64 scope link
valid_lft forever preferred_lft forever
[root@node2 ~]# ssh 192.168.168.201 'ip addr show dev eth0'
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:c9:20:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.168.201/24 brd 192.168.168.255 scope global eth0
inet 192.168.168.200/24 brd 192.168.168.255 scope global secondary eth0
inet6 fe80::20c:29ff:fec9:2088/64 scope link
valid_lft forever preferred_lft forever
网友评论