logo NodeSeekbeta

vps的基础安全设置:修改默认端口,使用密钥登陆,禁用密码登陆,禁止root用户登陆

1: 前置条件:已经使用ssh工具成功连接到远程服务器
2: 服务器系统:debian 12

3: 最终实现的目的:使用密钥免密登陆当前服务器。

以下操作环境均是远程服务器内。

0.首先创建普通用户
当前是root用户,我们首先要创建一个普通用户:

#创建一个用户 名字叫:coco
adduser coco

输入后会提示设置密码,输入密码后回车,连续两次即可。接着提示设置用户信息,可以留空,一路回车最后输入Y确定即可。

#授予管理员权限:
usermod -aG sudo coco
#切换至用户coco
su - coco

1.紧接着生成密钥文件

ssh-keygen -t rsa -b 2048 -C "[email protected]"

输入此命令后,会收到提示让你设置密码,这个密码是额外用来加密密钥的,可直接回车键留空。
参数说明:

-t rsa: 指定密钥类型为 RSA。
-b 2048: 指定密钥位数为 2048 位。你也可以选择其他位数,更高的位数提供更高的安全性。
-C "[email protected]": 添加注释,任意信息都可。

完成上述步骤后,你将在指定的路径中得到两个文件:

私钥文件(默认为 id_rsa): 存储在 ~/.ssh/ 目录下。
公钥文件(默认为 id_rsa.pub): 同样存储在 ~/.ssh/ 目录下。

2.安装公钥

使用下面的命令将公钥内容添加到 ~/.ssh/authorized_keys 文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

公钥安装完毕后一定要把私钥下载到本地妥善保管,同时建议删除远程服务器上的私钥。

3.权限设置
密钥文件必须设置正确的权限确保只有当前用户有访问权:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

4.使用密钥登陆

使用本地电脑打开一个终端使用下面命令登陆

ssh -i ~/.ssh/id_rsa coco@ip

~/.ssh/id_rsa 是私钥路径

coco@ip: 用户和服务器ip

确认能成功登陆后,继续下面的步骤
5.禁用密码登陆
不建议直接修改/etc/ssh/sshd_config文件,规范的做法是在/etc/ssh/sshd_config.d目录下新建配置文件。
比如使用vim新建并打开一个配置文件:ssh.conf,文件后缀必须是:.conf

sudo vim /etc/ssh/sshd_config.d/ssh.conf

写入下面配置:

PasswordAuthentication no         #禁用密码登录,no为禁止
PermitRootLogin no                #禁止root账户登录

然后重启 SSH 服务:

sudo systemctl restart sshd

同时强烈建议使用以下推荐配置,尤其建议修改默认端口,下面是配置示例:

Port 7077        #修改默认的22端口,为ssh指定一个新的端口,需提前防火墙放行!!
PasswordAuthentication no         #禁用密码登录,no为禁止
PermitRootLogin no                #禁止root账户登录
AllowUsers user1 user2            #只允许特定用户进行SSH登录
AllowUsers [email protected]     #只允许指定用户使用指定ip的登陆

修改后重启 SSH 服务:

sudo systemctl restart sshd

注意修改端口需要安全组和防火墙提前放行,
并且修改完毕后一定要重新打开一个终端尝试登陆,不要把自己关外面了!

6. 再次确认登陆

使用本地电脑打开一个终端使用下面命令登陆验证:

ssh -i ~/.ssh/id_rsa -p 7077 user@ip

登陆成功后才能关闭当前ssh连接


最后有两个命令可以显示当前系统有没有被尝试撞库,可以检查一下:

显示系统上所有用户的登录历史记录。

sudo last

显示系统上所有用户登录失败的历史记录。

sudo lastb
  • 太麻烦,不是特别隐私和重要的用途一般就22+root+密码用了。但是感谢楼主,以后可能用的上

  • xhj006

  • bd

  • 顶你一下

  • 绑定,小辣鸡估计用不到

  • @tecmjj #1 22+root+密码,等于3个条件已知了2个,有被爆破的风险,不推荐

  • 秘钥登录感觉就行了吧

  • fail2ban可行不,懒得折腾别的

  • @av #8 用fail2ban也是可以的

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有12819位seeker

🎉欢迎新用户🎉