如何为集群中的 运行 MPI 程序自动设置 SSH 密钥的密码?

How to automatically set passphrase of SSH key for running MPI program in a cluster?

我在一个有 4 个节点的 linux 集群上 (n1.a.com, n2.a.com, n3.a.com, n4.a.com) 登录 节点 1 (n1.a.com).

现在我有一个名为“sample.out”的可执行文件,我想将其 运行 从 node 1.

我有 SSH 密钥 设置 密码

我在“hosts.txt”中也有 主机列表文件 as

n1.a.com:8
n2.a.com:8
n3.a.com:8
n4.a.com:8

所以,我运行正在执行以下命令:

mpiexec -n 32 -f hosts.txt ./sample.out

但是,运行执行上述命令后,所有 其他 3 个节点 都同时要求 密码短语 as

 Enter passphrase for key '/home/a/.ssh/id_dsa': Enter passphrase for key
 '/home/a/.ssh/id_dsa': Enter passphrase for key '/home/a/.ssh/id_dsa':

现在在这里输入密码 无效!它在输入密码时反复询问同样的事情。

我的查询

  1. 有没有办法自动将密码短语传递给all 节点? (可能是通过脚本)
  2. 或者,我是否必须使用 无密码 密钥?
  3. 有没有办法通过使用也安装的“Torque Batch”管理器来避免这种情况

一些可能对我的系统有用的信息:

Workload Manager :- Torque Batch System

>>mpich2 --version
HYDRA build details:
    Version:                                 1.4.1p1
    Release Date:                            Thu Sep  1 13:53:02 CDT 2011
    Process Manager:                         pmi
    Launchers available:                      ssh rsh fork slurm ll lsf sge manual persist
    Topology libraries available:              hwloc plpa
    Resource management kernels available:    user slurm ll lsf sge pbs
    Checkpointing libraries available:
    Demux engines available:                  poll select

为了避免输入密码,需要创建ssh-agent并添加密码如下:

ssh-agent $SHELL 
ssh-add 

来源:MPICH 1 Documentation: Configuring with ssh