Linux中多台主机ssh互免密码登录配置

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中黑体字部分就不用进行)

在这里插入图片描述

发布了25 篇原创文章 · 获赞 28 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_30680871/article/details/104692356