1、关闭SELinux
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
getenforce
通过getenforce可以查看SELINUX状态
/usr/sbin/sestatus -v
通过/usr/sbin/sestatus -v也可以查看SELINUX状态,enabled即为开启,disabled即为关闭。
2、关闭防火墙
systemctl stop firewalld //关闭防火墙
systemctl status firewalld//二者选其一皆可查看防火墙是否关闭
sudo systemctl status firewall.service
3、设置主机名
vim /etc/sysconfig/network
弹出文件后通过按“A”进行编辑,编辑完成后按“Esc”结束编辑,输入“:”后按“Enter”将光标移至末尾,输入“x”再按“Enter”保存并退出。若不保存可以按“wq”,有时会提示“wq!”强制退出。
分别将两台服务器设置为server1和server2。
4、设置hosts
vim /etc/hosts
分别将两台服务器hosts完成配置。
5、设置sshd
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
将这三行前的#去除,若找不到“RSAAuthentication yes”暂时没太大影响。
/sbin/service sshd restart //重启 sshd 服务
6、创建账户
useradd guest1 //创建新用户
passwd guest1 //设置新用户登录密码
分别在两个服务器上创建用户,密码最好是数字+字母。
7、生成密钥
su guest1 //切换账户
ssh-keygen -t rsa //生成密钥
一直按回车,最后生成密钥。可以进入到.ssh路径下查看是否生成成功。
cd .ssh //进入.ssh路径
ls //查看当前路径下的文件
id_rsa: 私钥
id_rsa.pub:公钥
8、将公钥导入到认证文件
cat /home/guest1/.ssh/id_rsa.pub >> /home/guest1/.ssh/authorized_keys
ssh guest2@server2 cat /home/guest2/.ssh/id_rsa.pub >> authorized_keys
值得一提的是,如果在使用guest2@server2出现timed out超时等情况,可以尝试将guest2@ip,在这里ip是本地ip地址,是自动分配的,需要查看后进行设置。类似于[email protected]。注意,ip可能会改变。
在执行命令时出现的密码就是创建用户时设置的密码。
cat authorized_keys //查看认证文件
9、设置文件访问权限
chmod 700 /home/guest1/.ssh
chmod 600 /home/guest1/.ssh/authorized_keys
设置完成后尝试服务器1免密登录服务器1
同样值得注意的是,如果guest1@linux1无法执行,可以尝试guest1@ip。
注意:当 known_hosts 文件中缺少主机名称信息时会提示如下信息,输入 yes 即可将主机名称写入 known_hosts 文件并登陆成功。
此时,服务器1可以免密登录服务器1,服务器2可以免密登录服务器1.
若想实现服务器2可以免密登录服务器2,服务器1可以免密登录服务器2.可以在服务器2中重复步骤8和9.
10、将认证文件复制到其他主机(选看)
# scp [要传输的本地文件] [远程主机用户名]@远程主机ip或主机名:[文件要传输到的目标位置]
scp /home/guest1/.ssh/authorized_keys guest2@server2:/home/guest2/.ssh/authorized_keys
scp /home/guest1/.ssh/known_hosts guest2@server2:/home/guest2/.ssh/known_hosts
执行以上命令将生成的 authorized_keys、known_hosts两个文件从 server1 复制到 server2 。
待复制完成以后,先使用以下命令设置文件访问权限。
chmod 700 /home/guest2/.ssh
chmod 600 /home/guest2/.ssh/authorized_keys
然后,执行 ssh guest1@ip 命令就能够使用server2的guest2账户免密码登录server1的guest1账户了。
小结:若想两个服务器能实现各自免密登录各自服务器以及互相免密登录,进行步骤1-9,若想实现单边免密登录另一边,可以选用步骤1-10(其中步骤8中黑体字部分就不用进行)