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

如何在远程SLURM作业中安全访问本地敏感数据且不泄露信息?

解决SLURM作业安全读取本地敏感数据的方案

以下是几种无需将敏感数据永久上传至集群,就能让SLURM作业安全访问本地数据的方法:

1. 预建立SSH反向隧道,让计算节点通过隧道访问本地

这种方法依赖SSH隧道让SLURM计算节点安全回连本地机器,避免在计算节点上存储密钥:

  • 第一步:在本地机器上,建立从集群登录节点到本地的反向隧道,将本地SSH服务(默认22端口)转发到登录节点的一个临时端口(比如12345):
    ssh -N -R 12345:localhost:22 your-cluster-user@cluster-login-ip
    
    保持该终端会话运行,不要关闭。
  • 第二步:修改r_script.R中的数据读取逻辑,让作业通过登录节点的转发端口访问本地数据:
    ssh your-local-user@cluster-login-ip -p 12345 'cat /data/mydata.csv'
    
  • 第三步:正常提交SLURM作业:
    sbatch ./job.sh -d your-local-user@cluster-login-ip:12345:/data/mydata.csv
    
    注意:若集群计算节点无法直接访问登录节点,可调整隧道绑定地址为-R 0.0.0.0:12345:localhost:22,同时确保登录节点防火墙开放该端口。

2. 利用SLURM的临时文件传输功能(部分集群支持)

部分SLURM集群配置了sbatch的--transfer参数,支持在作业启动前从本地拉取数据到计算节点的临时存储(如/tmp),作业结束后自动删除数据:

  • 提交作业时指定要传输的文件:
    sbatch --transfer /data/mydata.csv:/tmp/mydata.csv ./job.sh -d /tmp/mydata.csv
    
    SLURM会自动把本地的/data/mydata.csv复制到计算节点的/tmp目录,作业直接读取临时文件即可,数据不会留在集群持久存储中。
  • 注意:需确认集群是否支持该功能,可通过sinfo -V查看SLURM版本,或联系集群管理员确认配置。

3. 安全传递SSH密钥到作业环境(谨慎使用)

若隧道方案不可行,可临时传递SSH私钥到作业环境,但需确保加密传输:

  • 第一步:在本地用AES加密私钥(使用强密码):
    openssl enc -aes-256-cbc -in ~/.ssh/id_rsa -out id_rsa.enc
    
  • 第二步:修改job.sh添加解密逻辑,作业结束后删除私钥:
    # 解密私钥(密码通过环境变量传递,避免明文)
    openssl enc -d -aes-256-cbc -in id_rsa.enc -out ~/.ssh/id_rsa -k "$SSH_KEY_PASS"
    chmod 600 ~/.ssh/id_rsa
    # 执行分析脚本
    Rscript r_script.R
    # 清理私钥
    rm ~/.ssh/id_rsa
    
  • 第三步:提交作业时通过--export传递加密密码(注意:部分集群会记录环境变量,需确认集群日志策略):
    sbatch --export=SSH_KEY_PASS=your-strong-password --transfer id_rsa.enc:./id_rsa.enc ./job.sh -d user@local.ip:/data/mydata.csv
    

4. 使用SSHFS临时挂载本地目录(需计算节点支持)

若集群计算节点允许使用SSHFS,可在作业运行时临时挂载本地目录到计算节点临时空间:

  • 修改job.sh添加挂载与卸载逻辑:
    # 创建临时挂载点
    mkdir -p /tmp/local-data
    # 挂载本地目录到计算节点
    sshfs user@local.ip:/data /tmp/local-data -o IdentityFile=~/.ssh/id_rsa
    # 执行分析脚本(读取/tmp/local-data/mydata.csv)
    Rscript r_script.R
    # 卸载并清理挂载点
    fusermount -u /tmp/local-data
    rmdir /tmp/local-data
    
  • 提交作业前需确认计算节点已安装SSHFS,且集群允许使用FUSE挂载。

内容的提问来源于stack exchange,提问作者jay.sf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 13:30:53