前提双方配置好hosts,可以相互ping通
1.先用ssh相互登陆对方,我只有两台虚拟机Master (lihui1@master)、slave01(lihui2@slave01)
但是ssh slave01的时候会报错,如果不报错直接跳转到第二步
显示权限禁止不允许,注意我另一台用户的用户名是lihui2,但是现在直接ssh slave01是默认lihui1的用户名,此时有两种解决办法:
- a.使用ssh lihui2@slave01 输入密码登陆
- b.在.ssh文件夹下建立config文件,配置映射关系,如果没有ssh文件夹需要先用ssh连接对方账户,双方都要ssh一下,才会有.ssh文件夹,eg:ssh lihui2@slave01 ssh lihui1@master,双方输入密码登陆即可
建立config文件:
(先用exit命令退出登陆的对方账户)
a.cd .ssh
b.sudo vim config
Host hostname
user username - eg:我的master的用户名是lihui1@master,那么我的hostname就是master 我的username 为lihui1,照此方法进行编写config文件夹就可以了
c.chmod 644 config (更改config的权限)再互相登陆既可以了
2.配置公钥和私钥
master 下:
- 1.exit命令退出登陆的对方账户
- 2.cd .ssh/
- 3.ssh-keygen -t rsa (一路回车)
- 4.cat id_rsa.pub >> authorized_keys
- 5.scp ~/.ssh/authorized_keys slave01:~/.ssh/ (slave01是你上面的hostname)
slave01下:
- 1.exit命令退出登陆的对方账户
- 2.cd .ssh/
- 3.ssh-keygen -t rsa (一路回车)
- 4.cat id_rsa.pub >> authorized_keys
- 5.scp ~/.ssh/authorized_keys master:~/.ssh/ (master是你上面的hostname)
切换到master的.ssh文件夹下:
输入:chmod 600 authorized_keys
切换到slave01的.ssh文件夹下:
输入:chmod 600 authorized_keys
测试登陆
- master下:ssh slave01
- slave01下:ssh master
现在就完成免密登陆了,配置ssh免密登陆完成!