服务器居然被黑客通过暴力ssh破解并进行挖矿,本篇文章将讲述如何创建用户私钥,并关闭ssh密码登录

1. 创建新用户并创建私钥

使用root用户创建新用户,名为xxx,并禁用密码登录。
指定用户使用的shell解释器为bash,指定用户主目录路径为/home/xxx或者其他自定义路径。

adduser xxx --disabled-password --shell /bin/bash --home /home/xxx

若需对新增用户设置用户组或者其他内容,请参考adduser命令其他用法

2. 对已存在的用户创建私钥

一般分成两种情况:

  1. 用户自己生成公钥私钥,把公钥文件(.pub文件)交给服务器管理员,或者自己上传到服务器完成配置,这种情况见Xshell生成秘钥对服务器设置秘钥登录,这两篇博客,本文不再赘述。
  2. 服务器管理员为用户生成,这种情况见下文。

如果是root用户给其他普通用户生成私钥,则首先切换到用户xxx,进入该用户xxx的工作目录。如果是普通用户给自己生成私钥,忽略这一步,直接下一步。

su xxx

创建ssh的隐藏目录,并赋予700权限(只有该用户读取和修改)

mkdir ~/.ssh
chmod 700 ~/.ssh

创建公钥文件,一个用户会有一个公钥文件。输入以下命令,如果为了简便可以直接不用输入密码一路回车到底。当然更推荐于生成秘钥的时候设置一个为秘钥加密的密码,这样用户后续使用私钥文件+私钥密码的方式会更加安全。(这样可以防止私钥文件泄漏,其他人可以直接登录)
默认生成的路径就是用户主目录下的.ssh文件夹中。

ssh-keygen -t rsa -b 4096 -v

此时,.ssh文件夹中会出现两个文件id_rsa.pub公钥和id_rsa私钥。

接下来,将公钥写入授权文件当中。并赋予该文件600权限(该用户可读可写)。

cd ~/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 authorized_keys

最后一步,将私钥文件id_rsa下载下来,分发给指定用户即可。用户拿到后,使用xshell或者其他终端软件,来进行登录,详细见:https://blog.csdn.net/weixin_45564548/article/details/111193459
若使用putty的话,需要做一次转换操作,见https://blog.csdn.net/wkh___/article/details/85321799

3. 关闭ssh密码登录功能

当所有用户完成证书分发后,使用root用户,修改/etc/ssh/sshd_config文件,关闭所有用户密码登录的功能。
按照以下参数调整,其他不动

RSAAuthentication  yes		// RSA秘钥认证
PubkeyAuthentication  yes	// 公钥认证
PasswordAuthentication  no	// 关闭密码登录

重启ssh服务

service sshd restart
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐