tencent cloud

云服务器

动态与公告
产品动态
公共镜像更新动态
操作系统官方停止维护计划
产品公告
产品简介
云服务器概述
产品优势
基本概念
地域和可用区
新手指引
Service Regions and Service Providers
产品计费
计费概述
计费方式
计费项
转换计费方式
购买实例
变配费用说明
欠费说明
快速入门
通过自定义配置购买 Linux 云服务器
通过自定义配置购买 Windows 云服务器
用户指南
操作指南总览
使用限制总览
实例
竞价实例
预留实例
镜像
存储
备份与恢复
网络
安全
密码/密钥
监控与告警
运维管理
便捷功能
迁移服务器
在线迁移
迁移咨询
故障处理
无法登录云服务器问题处理思路
Windows 实例登录相关故障
Linux 实例登录相关故障
其他实例登录相关故障
实例运行故障
Linux 实例内存故障
网络故障
实践教程
云服务器选型建议
搭建环境
搭建网站
搭建应用
搭建可视化界面
本地文件上传到云服务器
网络性能测试
其他实践教程
API 文档
History
Introduction
API Category
Making API Requests
Region APIs
Instance APIs
Cloud Hosting Cluster APIs
Image APIs
Instance Launch Template APIs
Placement Group APIs
Key APIs
Security Group APIs
Network APIs
Data Types
Error Codes
安全与合规
访问管理
网络
常见问题
地域和可用区相关
计费相关
实例相关
存储相关
镜像相关
服务器迁移相关
网络相关
安全相关
操作系统相关
运维和监控相关
访问管理相关
NTP 服务相关
应用场景相关
服务协议
CVM Service Level Agreements
Red Hat Enterprise Linux 镜像服务协议
Public IP Service Level Agreement
词汇表
文档云服务器故障处理Linux 实例登录相关故障Linux 实例:VNC 或 SSH 登录报错“Permission denied”

Linux 实例:VNC 或 SSH 登录报错“Permission denied”

PDF
聚焦模式
字号
最后更新时间: 2025-06-09 18:30:21

现象描述

使用 VNC 或 SSH 登录时,提示报错信息 “Permission denied”。
VNC 登录报错如下图所示:


SSH 登录报错如下图所示:



可能原因

使用 VNC 或 SSH 登录会调用 /etc/pam.d/login 这个 pam 模块进行校验,在 /etc/pam.d/login 配置中默认会引入 system-auth 模块进行认证,system-auth 模块默认会引入 pam_limits.so 模块进行认证。system-auth 的默认配置如下图所示:


pam_limits.so 模块的主要功能是限制用户会话过程中对各种系统资源的使用情况。默认情况下该模块的配置文件是 /etc/security/limits.conf,该配置文件规定了用户可使用的最大文件数、最大线程数、最大内存等资源使用量。参数说明如下表:
参数
说明
soft nofile
可打开的文件描述符的最大数(软限制)。
hard nofile
可打开的文件描述符的最大数(硬限制),不能超过该设定值。
fs.file-max
系统级别的能够打开的文件句柄(内核中 struct file)的数量。针对整个系统的限制,并不针对用户。
fs.nr_open
单个进程可分配的最大文件描述符数目(fd 个数)。
可能导致无法正常登录的原因是配置文件 /etc/security/limits.conf 中关于 root 用户最大能打开的文件描述符个数配置错误,正确的配置应满足 soft nofile ≤ hard nofile ≤ fs.nr_open 关系。

解决思路

参见 处理步骤soft nofilehard nofilefs.nr_open 修改为正确配置。

处理步骤

1. 尝试使用 SSH 登录云服务器,详情请参见 使用 SSH 登录 Linux 实例
登录成功,则执行下一步。
登录失败,则需使用单用户模式,详情请参见 通过控制台进入 Linux 实例单用户模式
2. 查看参数 soft nofilehard nofilefs.nr_open 值是否满足 soft nofile ≤ hard nofile ≤ fs.nr_open 关系:
执行以下命令,查看 soft nofilehard nofile 值。
cat /etc/security/limits.conf
本文获取结果为3000001及3000002。如下图所示:


执行以下命令,查看 fs.nr_open 值。
sysctl -a 2>/dev/null | grep -Ei "file-max|nr_open"
本文获取结果为1048576。如下图所示:


3. 修改 /etc/security/limits.conf 文件,在文件末尾添加或修改如下配置:
root soft nofile:100001
root hard nofile:100002
4. 修改 /etc/sysctl.conf 文件,在文件末尾添加或修改如下配置:
说明:
在满足 soft nofile ≤ hard nofile ≤ fs.nr_open 关系时,此步骤非必选,可在系统最大限制不足时再进行调整。
fs.file-max = 2000000
fs.nr_open = 2000000
5. 执行以下命令,使配置立即生效。配置完成后,即可恢复登录。
sysctl -p


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈