Windows Server 2022通过sshd挂载Azure存储共享的密钥问题
解决sshd会话中挂载Azure文件共享的问题
问题分析
你在RDP会话中可正常挂载并持久化Z盘,但sshd会话里使用net use直接携带以/开头的存储账户密钥时,密钥会被误识别为未知命令选项;同时因sshd会话限制,无法通过cmdkey保存凭证(报错CMDKEY: Credentials cannot be saved from this logon session.)。
解决方案
1. 修正net use命令的密码传递方式
存储账户密钥以/开头会被net use误解析为命令参数,只需用双引号包裹密码即可,同时注意共享路径需使用双反斜杠:
net use Z: \\myStorageAcct.file.core.windows.net\xfer /user:myStorageAcct "/CMA33FV...=="
2. 使用PowerShell的New-SmbMapping命令
PowerShell的New-SmbMapping对凭证处理更灵活,适配sshd会话场景:
# 创建凭证对象 $cred = New-Object System.Management.Automation.PSCredential ("myStorageAcct", (ConvertTo-SecureString "/CMA33FV...==" -AsPlainText -Force)) # 挂载共享为Z盘(非持久化,每次sshd会话需重新执行) New-SmbMapping -LocalPath "Z:" -RemotePath "\\myStorageAcct.file.core.windows.net\xfer" -Credential $cred -Persistent $false
若需每次sshd登录自动挂载,可将上述脚本添加到用户的PowerShell配置文件(执行notepad $PROFILE打开编辑)。
3. 验证挂载结果
执行以下命令确认挂载状态:
Get-SmbMapping -LocalPath "Z:" # 或直接查看Z盘内容 Get-ChildItem Z:
内容的提问来源于stack exchange,提问作者Buzz Moschetti
相关产品推荐
相关产品推荐

