新浪博客

如何让Linux服务器只能publickey登入而不能用密码登入

2023-04-16 16:19阅读:
网机器存在被攻击的风险,经常会出现ssh登录的时候,由于密码输错次数过多而被锁住无法登录的情况。原因是公网IP被攻击,不断尝试ssh登录,导致密码输错次数过多。
规避方法有1. 修改默认端口号为非22端口, 2. 关闭密码登录功能,3. 配置防火墙,只允许指定IP的机器访问。此处介绍关闭密码登录,使用密钥登录方法。

基础操作

  1. 在客户端生成密钥对ssh-keygen,之后一直按回车即可。
  2. 将本地密钥对的公钥上传到服务器。
  • ssh-copy-id -i ~/.ssh/id_rsd.pub root@IP。需要输入服务器的密码。如果ssh默认端口不是22,需要加-p 端口号指定端口。
  • 或者手动复制~/.ssh/id_rsd.pub中的内容到服务器的~/.ssh/authorized_keys文件中。
  1. 直接免密登录。ssh root@IP。可以用-p 端口号-i key_file分别指定端口号和密钥文件。
  2. 关闭密码登录。修改/etc/ssh/sshd_config文件,将PasswordAuthentication yes改为noPubkeyAuthentication yes改为yes(如果为no的话),然后重启sshd服务systemctl restart sshd即可。
注意:私钥文件的权限必须是600。

我的更多文章

下载客户端阅读体验更佳

APP专享