通过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
相关产品推荐
相关产品推荐

