linux服务器之间设置免密登录
- 搞三台虚拟机
我的三台虚拟机是
192.168.30.101
192.168.30.102
192.168.30.103
- 改一下主机名
vi /etc/hostname
文件里面的内容改成自己主机名就行
我改的是kafka101,kafka102,kafka103
- 改host文件,添加以下内容
192.168.30.101 kafka101
192.168.30.102 kafka102
192.168.30.103 kafka103
- 以上操作都是为了方便,不搞也行,直接输ip地址
- 每台服务器上都生成一下秘钥,执行命令
ssh-keygen -t rsa
执行完成后一直点回车就行了
- 生成的文件在
/root/.ssh
文件夹里,文件夹以点开头,是个隐藏文件,要想看就在root文件夹里输入ls -lha
,可以查看隐藏文件夹 - 进入
.ssh
,里面有这几个文件
id_rsa #生成的私钥文件
id_rsa.pub #生成的公钥文件
- 把公钥的文件名改了,都改成
id_rsa.pub_copy_kafka101
,其他服务器也改一下,后缀是对应的主机名
mv id_rsa.pub id_rsa.pub_copy_kafka101
- 三台服务器都改完之后就有三个文件了,
id_rsa.pub_copy_kafka101
,id_rsa.pub_copy_kafka102
,id_rsa.pub_copy_kafka103
- 每台服务器都要有这三个文件,用命令分发,或者用ftp工具传输都行,分发命令
scp id_rsa.pub_copy_kafka101 kafka102:~/.ssh/
,这个是从kafka101把文件分发到kafka102 - 操作完后执行命令
cat id_rsa.pub_copy_kafka102 >> authorized_keys
,cat id_rsa.pub_copy_kafka103 >> authorized_keys
每台服务器都把除自己外的公钥写到
authorized_keys
这个文件里就行了
- 操作完就可以免密登录了,输入命令
ssh kafka102
,就直接连接上了,不用输密码