CentOS 7 免密登录配置-程序旅途
该图片由u_8hiujbnxwsPixabay上发布

本文讲一下 CentOS 7 如何配置免密登录。

平时登录服务器用账号密码多一些,还用一种不需要密码的方式,就是使用密钥认证。

两台服务器 A:192.168.1.8 和 B:192.168.1.9,配置 A 登录 B 不需要使用密码。

生成RSA密钥对

在 A 服务器上生成RSA密钥对

ssh-keygen -t rsa

一直回车,最后在 ~/.ssh 目录下生成私钥文件 id_rsa 和 公钥文件 id_rsa.pub。

上传公钥到目标服务器

将公钥复制到服务器B

ssh-copy-id -p 25564 root@192.168.1.9

-p 是指定目标服务器的ssh端口,如果是默认22,可以不用指定。这一步需要输入密码,ssh-copy-id 是将公钥文件复制到 B 服务器的 ~/.ssh/authorized_keys 文件。

免密登录

从 A 服务器登录

ssh -p 25564 root@192.168.1.9

此时就不需要密码了。

另一种配置方式

如果不使用 ssh-copy-id ,可以按下面的步骤操作

scp -P 25564 ~/.ssh/id_rsa.pub root@192.168.1.9:~  // scp命令将公钥上传到目标服务器

然后在目标服务器上操作

cd ~ && cat id_rsa.pub >> .ssh/authorized_keys

这种方式要确保 authorized_keys 文件权限为600 .ssh 目录的权限为700

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

禁用密码认证

配置好免密登录后,使用密码依然可以登录,这也就意味着服务器仍然会受到暴利攻击。下面来禁用密码认证的登录方式。

修改 sshd_config 配置文件

vi /etc/ssh/sshd_config

输入 :/PasswordAuth 搜索定位到 PasswordAuthentication 行,将 yes 修改为 no

CentOS 7 免密登录配置-程序旅途

保存后,重启 sshd 服务

systemctl restart sshd

这样就只能通过密钥认证登录了。