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

Julia调用addprocs报错ECONNREFUSED、SSH密钥无法访问如何解决

问题解决方案

核心原因排查与修复

1 修正sshflags参数格式(最可能触发该问题的原因)

Julia的addprocs方法中sshflags关键字参数要求传入字符串数组而非单个拼接的字符串,如果你传入带空格的整串,程序会将整个内容视为单个参数传递给SSH命令,导致SSH误将-i /home/luigal/.ssh/id_rsa整体识别为文件路径,自然提示文件不存在。
修改后的代码示例:

worker=[("myuser@ip:port",1)]
addprocs(worker;
    sshflags=["-i", "/home/luigal/.ssh/id_rsa"],
    exename="/usr/local/bin/julia", 
    tunnel=true,
    dir="/home/luigal/HGEpidemics-main/"
)

2 校验SSH密钥权限

SSH对私钥文件的权限有严格要求,权限过高会被SSH主动拒绝读取,也会抛出类似不可访问的报错:
执行以下命令修正权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

3 验证运行环境一致性

确认运行Julia程序的用户,和你验证文件存在的用户为同一用户:

  • 执行whoami查看当前运行Julia的用户名
  • 执行ls -l /home/luigal/.ssh/id_rsa确认私钥文件的所有者是否和当前用户一致,避免用sudo等身份切换运行Julia导致无法读取当前用户目录下的密钥

4 手动验证SSH连通性

先在终端手动执行SSH连接命令,排除SSH本身的连接问题:

ssh -i /home/luigal/.ssh/id_rsa -p 你的端口号 myuser@你的虚拟机IP

如果手动连接失败,先排查SSH配置、网络、虚拟机端口开放等基础问题,手动连接成功后再运行Julia代码。

5 进阶排查(可选)

如果以上步骤都无法解决,可以在sshflags中加入-v参数打印SSH详细调试日志,定位具体报错点:

sshflags=["-v", "-i", "/home/luigal/.ssh/id_rsa"]

运行程序后查看控制台输出的SSH日志,即可定位具体是哪一步触发的文件不可访问错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:45:03