最近频繁收到公司购买的阿里或者腾讯云服务器被攻陷的信息,hacker在里面运行些肉鸡程序,经常占用系统大量资源,导致正常服务无法运行,甚至多次还被阿里和腾讯隔离,非常痛苦,于是去了解下关于sshd的安全配置,并实践了下发现很有用,这里分享下。

关于sshd服务,大家应该比较清楚,是登录云服务器的主要形式。而增加sshd安全有如下形式:

  1. 使用长密码及复杂密码
  2. 修改sshd默认端口
  3. 关闭密码登录,启用密钥登录

对于方式1和方式2,只是稍微增加了破解的时间,无法从根本解决。只有采用方式3才能保证。如下是具体步骤:

  • 步骤1. 客户端:利用ssh-keygen生成私钥id_rsa和公钥id_rsa.pub

    ssh-keygen
    

    PS: 在HOME目录的.ssh会产生2个文件id_rsa和id_rsa.pub

  • 步骤2. 服务端:创建HOME目录下.ssh
  • 步骤3. 拷贝客户端公钥id_rsa.pub内容到服务器.ssh/authorized_keys下也可以利用ssh-copy-id进行操作

    ssh-copy-id user@domain
    

    PS:注意authorized_keys权限是644,否则无效

  • 步骤4. 客户端验证是否可以用密钥登录

    ssh -i ~/.ssh/id_rsa user@domain
    
  • 步骤5. 服务端:关闭密码认证 sudo vim /etc/ssh/sshd_conf

    PasswordAuthentication no
    
  • 步骤6. 服务端:重启sshd服务

    sudo service sshd restart