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

pxssh使用含特殊字符的密码登录服务器失败,求解决方法

解决pxssh登录时含特殊字符密码被拒绝的问题

这个问题很常见——当密码里包含@这类shell特殊字符时,pxssh在传递密码的过程中,shell会把这些字符当成元字符解析,导致服务器实际收到的密码和你输入的不一致,所以才会抛出「Password Refused」错误。

给你两个可行的解决方案:

方案1:用shlex.quote()转义密码

shlex.quote()可以自动处理所有shell特殊字符,把密码包装成shell能正确识别的格式,避免解析错误。修改后的代码如下:

import pxssh
import shlex

# 定义带特殊字符的密码
password = 'Tes123P@ss'
# 转义密码中的特殊字符
escaped_password = shlex.quote(password)

s = pxssh.pxssh()
s.login('mylabserver4.com', 'testuser', escaped_password)

方案2:手动用单引号包裹密码

如果不想引入额外模块,也可以手动给密码加上单引号,因为shell会将单引号内的内容视为纯文本,不会解析其中的特殊字符:

import pxssh

s = pxssh.pxssh()
# 用单引号包裹密码
s.login('mylabserver4.com', 'testuser', "'Tes123P@ss'")

这两种方法都能确保你的完整密码被正确传递给服务器,解决「Password Refused」的问题。如果密码里包含单引号,方案1会更可靠,因为shlex.quote()会自动处理这种情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:32:39