如何在 Ubuntu 上设置密钥登录并禁用密码以提高服务器安全性
在安全管理中,SSH 密钥认证比密码登录更安全且便利,下面将指导你如何配置 Ubuntu 的 SSH 服务,启用密钥登录并禁用密码登录。
在本地或服务器上生成密钥文件。如果是本地生成,需要将密钥上传到服务器。
shellssh-keygen
/root/.ssh/id_rsa
)。id_rsa
) 和对应的 公钥文件(id_rsa.pub
)。将生成的公钥内容添加到服务器的 ~/.ssh/authorized_keys
文件中。
shellcat /root/.ssh/id_rsa.pub
复制输出内容(以 ssh-rsa AAAA
开头)到服务器并写入文件:
shellvim ~/.ssh/authorized_keys
修改 authorized_keys
文件权限,以避免安全隐患:
shellchmod 600 ~/.ssh/authorized_keys
备份 SSH 配置文件:
shellcd /etc/ssh/
将默认文件备份一份
shellcp sshd_config sshd_config.bak
清空文件内容
shellecho "" > sshd_config
编辑配置文件
shellvim sshd_config
替换其内容为以下配置
text# 必要设置 KbdInteractiveAuthentication no UsePAM yes X11Forwarding yes PrintMotd no AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server # 最大密码尝试次数 MaxAuthTries 6 # 开启 Root 登录,仅限密钥 PermitRootLogin without-password # 禁用密码登录 PasswordAuthentication no # 密钥相关设置 PubkeyAcceptedKeyTypes +ssh-rsa RSAAuthentication yes PubkeyAuthentication yes # 确保只有密钥可以认证 AuthenticationMethods publickey
保存后重启 SSH 服务:
shellsystemctl restart sshd
将生成的私钥文件 (id_rsa
) 下载到本地机器,并注意文件权限配置:
Windows:将私钥内容复制到本地文件 id_rsa
中保存。
macOS/Linux:在目标主机设置权限:
shellchmod 400 ~/.ssh/id_rsa
本地测试 SSH 登录命令:
shellssh root@your_server_ip -i ~/.ssh/id_rsa
如果提示 Permission denied (publickey)
,说明密码方式已禁用,只能使用密钥登录,设置成功。
注意
id_rsa
是高度敏感文件,务必妥善保管,不可泄露。以上是完整操作流程,一旦配置成功,无需担心暴力破解密码攻击,服务器的安全性将大大提高!
本文作者:Freed
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!