Ubuntu挂载Azure文件共享报CIFS -13 STATUS_LOGON_FAILURE错误
Azure文件共享CIFS挂载失败(Host is down/STATUS_LOGON_FAILURE)排查方案
你看到的Host is down是CIFS客户端的误导性返回,核心错误是内核日志里的0xc000006d STATUS_LOGON_FAILURE,代表SMB会话建立阶段身份认证被服务端拒绝。即使你确认过存储账户名、密钥正确,按以下优先级排查修复:
1. 最高频诱因:SMB加密参数缺失
Azure存储文件共享目前默认强制要求SMB 3.0+连接必须开启传输加密,你当前fstab配置仅指定了vers=3.0,但未显式开启加密参数,Ubuntu下多数版本的cifs-utils不会默认给SMB3.0连接开启加密,会直接被Azure端拒绝连接。
- 先临时执行挂载命令验证该问题:
sudo mount -t cifs //storageaccountname.file.core.windows.net/fileshare_name /path/to/mountdirectroy/ -o vers=3.0,credentials=/etc/smbcredentials/mycredentails.cred,uid=mysql,gid=mysql,dir_mode=0750,file_mode=0750,serverino,seal
新增的
seal参数作用是强制开启SMB传输层加密,如果该命令执行后挂载成功,即可确认是该问题。
- 永久修复:编辑
/etc/fstab,在原有挂载参数末尾追加,seal,修改后的完整配置行如下:
//storageaccountname.file.core.windows.net/fileshare_name /path/to/mountdirectroy/ cifs nofail,vers=3.0,credentials=/etc/smbcredentials/mycredentails.cred,uid=mysql,gid=mysql,dir_mode=0750,file_mode=0750,serverino,seal
- 配置修改完成后执行
sudo mount -a,无返回报错即代表配置生效,重启后也会自动挂载。
2. 次高频诱因:凭据文件异常
即使你核对过密钥内容,两类隐蔽问题会导致认证失败:
- 凭据文件权限不符合要求:cifs-utils读取凭据时要求文件必须是root权限且其他用户不可读,否则会出现读取内容异常,执行以下命令修正权限:
sudo chmod 600 /etc/smbcredentials/mycredentails.cred sudo chown root:root /etc/smbcredentials/mycredentails.cred
- 密钥存在不可见冗余字符:复制存储账户密钥时很容易带上末尾的空格、换行符,或者存储账户开启了自动密钥轮换导致当前使用的密钥已失效。到存储账户访问密钥页面重新复制密钥,替换凭据文件中
password字段的值,注意不要选中多余字符;另外确认username字段仅填写纯存储账户名,不要追加.file.core.windows.net后缀。
3. 网络层拦截排查
如果前面的操作都无法解决,先验证445端口连通性,Azure文件共享仅通过SMB协议的445端口提供服务:
nc -zv storageaccountname.file.core.windows.net 445
如果端口连通失败,依次排查:
- 本机ufw/iptables防火墙是否拦截了出站445端口流量
- 主机所在内网出口防火墙、NAT网关是否拦截了对外445端口访问
- 存储账户防火墙配置是否放行了当前主机的公网IP或所属虚拟网络,是否误配置为禁止所有公网访问
4. 客户端组件版本问题
如果你的Ubuntu版本为18.04及更早,系统自带的cifs-utils、内核模块对SMB3.0加密的支持存在已知bug,执行以下命令升级相关组件后重启主机再尝试挂载:
sudo apt update sudo apt install --only-upgrade cifs-utils linux-generic
内容的提问来源于stack exchange,提问作者Hamza AZIZ
相关产品推荐
相关产品推荐

