如何配置JetBrains IDE(PyCharm)通过需两次密码的SSH服务器远程解释器?
PyCharm配置双重密码验证的SSH远程解释器
PyCharm自带的SSH配置界面不直接支持连续两次密码输入的验证场景,但可以通过自定义脚本或SSH配置文件的方式实现,具体方案如下:
方案1:使用Expect脚本处理交互式输入
这是最通用的解决方案,能模拟手动输入两次密码的流程:
- 编写一个Expect脚本(比如命名为
double_auth_ssh.exp):#!/usr/bin/expect spawn ssh your_username@target_server_ip expect "password:" # 匹配第一次密码输入提示,根据实际提示修改 send "your_first_password\r" expect "second verification password:" # 匹配第二次密码输入提示,根据实际提示修改 send "your_second_password\r" interact - 给脚本添加执行权限:
chmod +x double_auth_ssh.exp - 在PyCharm配置远程解释器时:
- 选择「SSH解释器」→「新建SSH配置」
- 在「SSH配置」窗口的「命令」字段中,填入该脚本的绝对路径(比如
/home/your_local_user/double_auth_ssh.exp) - 后续按常规流程配置远程Python解释器路径即可
方案2:通过SSH配置文件配合脚本
- 编辑本地SSH配置文件(
~/.ssh/config,Windows路径为C:\Users\你的用户名\.ssh\config),添加如下内容:Host double_auth_server HostName target_server_ip User your_username ProxyCommand expect /path/to/your_double_auth_script.exp - 在PyCharm的SSH配置中,直接选择
double_auth_server这个主机配置,后续按流程完成远程解释器设置
注意事项
- 脚本中明文存储密码存在安全风险,建议优先联系服务器管理员,改用密钥认证替代双重密码验证
- 如果第二次验证是
sudo提权,可直接将远程解释器路径设为sudo -S python3,并在SSH配置的「登录脚本」中添加echo your_sudo_password | sudo -S -v来自动处理
内容的提问来源于stack exchange,提问作者Peyman
相关产品推荐
相关产品推荐

