You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过SSH在Windows 10执行poetry install时出现WinError 1312的求助

Windows SSH执行poetry install报[WinError 1312]错误的解决建议

问题场景

通过Windows机器SSH连接另一台Windows机器,执行poetry install命令时触发如下错误,本地直接执行该命令完全正常:

[WinError 1312] A specified logon session does not exist. It may already have been terminated.

已知该错误可能与MachineKeys目录相关,但缺少具体解决方向。

环境信息

  • Python: 3.10.8
  • Poetry: 1.2.1

错误堆栈详情

Installing dependencies from lock file

Package operations: 5 installs, 0 updates, 0 removals

  • Installing install-requires (0.3.0)

  OSError

  [WinError 1312] A specified logon session does not exist. It may already have been terminated.

  at ~\AppData\Roaming\pypoetry\venv\lib\site-packages\win32ctypes\core\ctypes\_util.py:53 in check_zero
       49│
       50│ def check_zero_factory(function_name=None):
       51│     def check_zero(result, function, arguments, *args):
       52│         if result == 0:
    →  53│             raise make_error(function, function_name)
       54│         return result
       55│     return check_zero
       56│
       57│

The following error occurred when trying to handle this error:


  error

  (1312, 'CredRead', 'A specified logon session does not exist. It may already have been terminated.')

  at ~\AppData\Roaming\pypoetry\venv\lib\site-packages\win32ctypes\pywin32\pywintypes.py:37 in pywin32error
       33│ def pywin32error():
       34│     try:
       35│         yield
       36│     except WindowsError as exception:
    →  37│         raise error(exception.winerror, exception.function, exception.strerror)
       38│

解决建议

1. 绕过凭据存储直接传递认证信息

错误堆栈中的CredRead表明Poetry尝试读取系统凭据存储时失败,SSH会话默认不会加载用户的凭据缓存。可以通过以下方式绕过:

  • 临时设置Poetry的PyPI认证:
    poetry config http-basic.pypi <你的PyPI用户名> <你的PyPI密码>
    poetry install
    
  • 或者使用环境变量临时传递(会话结束后自动失效):
    set POETRY_HTTP_BASIC_PYPI_USERNAME=<你的PyPI用户名>
    set POETRY_HTTP_BASIC_PYPI_PASSWORD=<你的PyPI密码>
    poetry install
    
  • 如果安装的都是公开包,可直接禁用凭据验证:
    poetry config repositories.pypi https://pypi.org/simple/ --unset
    poetry install
    

2. 调整MachineKeys目录权限

检查目标机器上C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys目录的权限:

  • 右键该目录 → 属性 → 安全 → 编辑
  • 添加SSH登录的用户账户,赋予读取和列出目录内容权限
  • 应用设置后重新执行poetry install

3. 使用独立虚拟环境执行

SSH会话缺少部分用户上下文环境变量,创建独立的Poetry虚拟环境可避免依赖全局配置:

poetry env use python3.10
poetry install --no-root

4. 升级Poetry版本

Poetry 1.2.x存在Windows凭据处理的已知bug,升级到最新稳定版可修复该问题:

poetry self update

内容的提问来源于stack exchange,提问作者suecanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:25:40