1.将ssh的登录密码修改为高级别(字母大小写+数字+特殊字符+20位以上)并未定期更换
2.修改ssh默认端口22为别的端口:
vim /etc/ssh/sshd_config
将 #Port 22 去掉前面的#修改为 Port 54367
:wq! 保存退出
3.基于PAM实现登录限制
vim /etc/pam.d/sshd
在
#%PAM-1.0
auth required pam_sepermit.so
两行之间插入一条语句:
auth required pam_tally2.so deny=2 even_day_root root_unlock_time=60 unlock_time=30
意思是root用户和普通用户 输入错误两次便拒绝(错误两次后即便输入正确的密码也会拒绝),root用户解锁时间为60秒(即错误两次后,60秒之后再次输入密码,才会进行密码请求访问),普通用户解锁时间为30秒
4.xshell导出的导出回话文件,例如session_xsh.xts中包含登录信息,导出后在其他电脑上导入也可以使用并登录,防御:防止恶意导出或者导出时清空密码和添加打开密码等
5.禁用密码登录,改用公钥方式认证(公钥方式认证,步骤4的导出回话信息在别的地方便不可用):
vim /etc/ssh/sshd_config
将 #PasswordAuthentication no 前的 #去掉,修改为 PasswordAuthentication no ,表示禁用密码登录, PasswordAuthentication yes ,表示可以使用密码登录
:wq! 保存退出
6.一种误用,可以让root用户随便输入密码就可以登录:
方法:
1.vim /etc/pam.d/su
2.复制
auth sufficient pam_rootok.so
内容到文件/etc/ssh/sshd_config中
3.vim /etc/ssh/sshd_config
在
#%PAM-1.0
auth required pam_sepermit.so
两行之间粘贴语句: auth sufficient pam_rootok.so (意思是root用户总够充足,随便输入密码即可登录)
4. :wq! 保存退出
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构