如何自动设置 SSH 密钥的密码以在集群中运行 MPI 程序?
Posted
技术标签:
【中文标题】如何自动设置 SSH 密钥的密码以在集群中运行 MPI 程序?【英文标题】:How to automatically set passphrase of SSH key for running MPI program in a cluster? 【发布时间】:2016-03-02 09:04:15 【问题描述】:我在一个有 4 个节点的 linux 集群(n1.a.com、n2.a.com、n3.a.com、n4.a.com)已登录 node 1 (n1.a.com).
现在我有一个名为“sample.out”的可执行文件,我想从 node 1 在集群上运行它。
我有 SSH 密钥 设置了 passphrase。
我在“hosts.txt”中也有主机列表文件
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 个节点都在同时要求 密码短语
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':
现在在此处输入密码不起作用!它在输入密码时反复要求相同的内容。
我的查询
-
有没有办法自动将密码传递给all
节点? (可能通过脚本)
或者,我是否必须使用 无密码 密钥?
有什么方法可以通过使用同样安装的“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
【问题讨论】:
【参考方案1】:为了避免输入密码,需要创建一个 ssh-agent 并添加密码,如下所示:
ssh-agent $SHELL
ssh-add
来源:MPICH 1 Documentation: Configuring with ssh
【讨论】:
以上是关于如何自动设置 SSH 密钥的密码以在集群中运行 MPI 程序?的主要内容,如果未能解决你的问题,请参考以下文章