当前服务器需要免密登陆到node01,node02,node03 三台机器
最一般的设置方式如下:
# ssh-keygen 制作公私钥文件
# cat ~/.ssh/id_rsa.pub | ssh user@server "cat - >> ~/.ssh/authorized_keys"
不过Linux系统还为我们提供了一个更加简便的系统命令:ssh-copy-id
1,制作证书文件
ssh-keygen -m PEM -t rsa -f /etc/heketi/heketi_key -b 4096 -q -N ''
2, 给程序分配用户权限
chown heketi:heketi /etc/heketi/heketi_key
3,复制公钥到各节点
ssh-copy-id -i /etc/heketi/heketi_key.pub root@node01
ssh-copy-id -i /etc/heketi/heketi_key.pub root@node02
ssh-copy-id -i /etc/heketi/heketi_key.pub root@node03
不过ssh-copy-id有一个很要命的问题,那就是缺省它仅仅支持SSH运行在22端口的情况,不过实际上出于安全的需要,我们往往都会更改服务器的SSH端口,比如说改成10022端口,这时候你运行ssh-copy-id就会报错了,直接修改ssh-copy-id脚本当然可以修正这个问题,但是那样显得太生硬了,实际上还有更好的办法:
# vi ~/.ssh/config
加上内容:
Host server
Hostname ip
Port 10022
你也可以单独只加入Port一行配置,那样就是一个全局配置,保存后再运行ssh-copy-id命令就不会报错了。
补充:经网友提示,如果端口不是22,不修改config文件,按如下方式也可以:
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"
全部评论