如何通过本地Jupyter连接使用远程服务器上的Julia内核
完全可以实现,无需在远程服务器安装Jupyter本体,仅需简单配置即可满足你保留本地notebook编辑习惯、调用远程计算资源的需求,具体操作步骤如下:
步骤1:远程服务器安装IJulia依赖
通过SSH登录远程服务器,打开Julia交互终端,执行以下命令安装IJulia包:
using Pkg Pkg.add("IJulia")
安装完成后无需额外配置Jupyter相关服务,即可退出远程连接。
步骤2:本地添加远程Julia内核
- 本地终端执行以下命令,查看现有Jupyter内核的存储路径:
jupyter kernelspec list
输出中会显示本地IJulia内核对应的文件夹路径,例如/home/yourname/.local/share/jupyter/kernels/julia-1.9。
复制该IJulia内核文件夹,重命名为自定义名称,例如
julia-remote,对应后续内核列表中显示的名称。进入新的
julia-remote文件夹,编辑其中的kernel.json文件,将原有的Julia启动参数替换为SSH调用远程Julia内核的命令,示例配置如下:
{ "argv": [ "ssh", "*你的远程服务器用户名@远程服务器IP*", "-t", "*/远程服务器上Julia的绝对路径*", "-i", "*/远程服务器上IJulia包的kernel.jl绝对路径*", "{connection_file}" ], "display_name": "Julia 1.9 (Remote)", "language": "julia" }
两个路径的获取方式:
远程终端执行which julia可获得远程Julia的绝对路径
远程Julia交互终端执行using IJulia; println(pathof(IJulia)),将输出的路径末尾的IJulia.jl替换为src/kernel.jl,即为kernel.jl的绝对路径
步骤3:配置SSH免密登录
本地终端执行以下命令配置免密登录,避免每次启动内核都需要输入SSH密码:
ssh-copy-id *你的远程服务器用户名@远程服务器IP*
配置完成后测试直接SSH登录远程服务器,确认无需输入密码即可正常登录即可。
步骤4:测试使用
本地正常启动Jupyter Notebook/Lab,新建文件时选择名称为Julia 1.9 (Remote)的内核即可:所有编辑操作、notebook文件都存储在本地,代码运行逻辑全部在远程服务器执行,完全匹配你的使用需求。
常见问题说明
- 若内核启动失败,可先手动在本地终端执行
kernel.json中argv字段的整条命令,排查是否存在路径写错、SSH连接异常等问题 - 若需要在notebook中读写远程服务器的文件,可将远程目录通过sshfs挂载到本地,直接读取挂载路径下的文件即可
- 网络中断后远程内核会自动停止,重新连接后需要重新运行已执行的代码块
内容的提问来源于stack exchange,提问作者Thomas

