当使用云主机的时候,关闭密码登录,禁止 root 用户远程登录,仅使用密钥登录能增加很大的安全性
生成 ssh 公钥和私钥
注意,这里最好使用普通用户,不要使用 root 用户,我后面的操作会禁用 root 用户 ssh 登录
ssh-keygen -t rsa -P "" -f ${HOME}/.ssh/id_rsa -q
查看生成的公钥和密钥
ll ${HOME}/.ssh
私钥:id_rsa
公钥:
id_rsa.pub
生成免密文件
cat ${HOME}/.ssh/id_rsa.pub >> ${HOME}/.ssh/authorized_keys
chmod 600 ${HOME}/.ssh/authorized_keys
修改 ssh 配置文件
提前将私钥文件保存到本地,可以命名为任何名称这里需要使用 root 用户来修改配置文件,修改之前先备份一份
cp /etc/ssh/sshd_config{,-bak}
vim /etc/ssh/sshd_config
# 是否密钥认证
PubkeyAuthentication yes
# 密钥认证文件
AuthorizedKeysFile .ssh/authorized_keys
# 是否允许 root 用户 ssh 登录
PermitRootLogin no
# 是否密码认证
## 在没有把握的情况下,先别着急改成 no
## 测试可以证书登录的时候再关闭也不影响
PasswordAuthentication no
重启 ssh 服务
systemctl restart sshd