本文讲一下 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
保存后,重启 sshd 服务
systemctl restart sshd
这样就只能通过密钥认证登录了。