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

Windows下使用Paramiko读取OpenSSH认证代理密钥时出现无效参数错误

解决Paramiko调用Agent().get_keys()时的[Errno 22] Invalid argument错误

问题场景

使用paramiko.agent.Agent().get_keys()列出RSA密钥时,抛出异常:[Errno 22] Invalid argument: '\\.\pipe\openssh-ssh-agent',环境为OpenSSH_for_Windows_8.9p1(已运行OpenSSH服务器)。

解决方案

1. 手动指定SSH_AUTH_SOCK环境变量

Paramiko默认适配的是PuTTY Pageant的管道路径,而非OpenSSH for Windows的管道。在代码中显式设置环境变量指向OpenSSH的agent管道:

import os
from paramiko import agent

# 指向OpenSSH agent的管道路径
os.environ['SSH_AUTH_SOCK'] = r'\\.\pipe\openssh-ssh-agent'
print(agent.Agent().get_keys())

也可以在系统环境变量中添加SSH_AUTH_SOCK,值设为\\.\pipe\openssh-ssh-agent,之后重启Python运行环境。

2. 验证OpenSSH Agent状态与密钥

打开PowerShell执行ssh-add -l,如果能列出已添加的密钥,说明agent运行正常;若提示无密钥,执行ssh-add添加本地密钥。

3. 升级Paramiko版本

较新版本的Paramiko(如2.12.0及以上)已优化对OpenSSH for Windows agent的支持,升级后可能无需手动设置环境变量:

pip install --upgrade paramiko

原因说明

Paramiko的Agent类最初针对Unix系统和PuTTY Pageant设计,在Windows环境下默认的管道路径与OpenSSH for Windows的agent管道不匹配,导致无法连接,需手动指定正确路径或升级库来适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:35:28